2012-01-14 7 views
2

からパターンを取ることはありません。grepが、私は、パターンファイルを持っている</em> t.txt <em>を言う、以下を含むファイル

vali 

と、私は反対のgrepを実行したいファイル、含む、を言います次

validate 
validate: 

bw_validate: 
[echo] Validating project: CrossService_v1_59_5_1 
[echo] Found 62 errors and 28 warnings 
[echo] ----------------------------------------------------------------- 
[echo] Validating project: CRM-UDB_59_4_2 
[echo] Found 25 errors and 28 warnings 
[echo] ----------------------------------------------------------------- 
[echo] Validation Failed: At least one project contains errors. 

notify: 

BUILD FAILED 
bw.xml:311: Validation Failed: At least one project contains errors. 

私が実行している場合:

grep -iE vali a 

は私が予想される出力、すなわち:

validate 
validate: 
bw_validate: 
[echo] Validating project: CrossService_v1_59_5_1 
[echo] Validating project: CRM-UDB_59_4_2 
[echo] Validation Failed: At least one project contains errors. 
bw.xml:311: Validation Failed: At least one project contains errors. 

を取得するが、私は実行している場合:

grep -iE -f t.txt a 

私はどんな試合を得ることはありません。 ファイルは読み込み可能で、同じディレクトリ(コマンドを実行したディレクトリ)にあります。 -fと--file = t.txt、--file = 't.txt'、--file = "t.txt"の両方を試しました。

私はLinux Fedora 16 64bitです。不思議にも、grep/egrep移植では、同じコマンドがWindowsで正しく動作します。

何か不足していますか? すべてのヘルプは(それは私のために動作します)これは私に頭痛を与えているよう:( 感謝!

+1

あなたは '猫-vetのt.txt'を行ってくださいことができます。あなたのパターンファイルにいくつかの 'スペース'や '特殊文字'が入っているようです。 –

+0

あなたは正しいです、それはラインの終わりの前に少し余分な^ Mを示しました。 dos2unixで変換して解決しました。 – Daniele

+0

「dos2unix」が利用できないシステムで作業したことがあった場合は、参考用に回答を掲載しました。がんばろう!! –

答えて

4

をそれは右を動作するはずが認識される。-fスイッチは、POSIXによって指定される。

あなたはそれがだと言う事実DOSでの改行で終わるファイルt.txtは可能でしょうか?きれいなファイル(改行なし)で試してみましたが、それはうまくいきました。そしてDOSファイルで試してみました。結果を再現してください。

dos2unixを試して、DOSファイルを "修復"してください。

1

dos2unixユーティリティをお持ちでない場合は、次のいずれかを実行して、DOSまたはWindowsの改行をUnix改行に変換できます。あなたは、通常、最初Ctrl-vを押すことによって、コマンドライン上に文字通り^M制御文字を入力することができ

  1. この1ライナーは、すべての行がCR+LF(キャリッジリターン+ラインフィード)で終わることを前提と

    sed -i 's/.$//' filename 
    
  2. (コントロールキー+ vキー)、次にCtrl-m。  のsed -iさん/^M $ //」のファイル名

  3. この次のワンライナーは、私たちがGNU sedを使用していることを前提としています。 CRの16進値は0x0Dです。

    sed -i 's/\x0D$//' filename 
    
関連する問題