0

こんにちは私は2つの入力ファイルを持っています。

input1.txt:

id above
id below
id still
id getting

input2.txt

id above
value above the sky

id below
value under the chair

awkコマンドを実行しようとすると、空で表示されます。

 awk -f find.awk input1.txt input2.txt

2つの異なるtxtファイルを入力すると、すべての出力が正しく表示されるため、awkが機能することがわかります。

異なるinput2.txtファイルの違いは...

Windowsマシンでメモ帳を使用すると、ファイル全体が1つの文字列になりますが、txtエディターを使用すると、別々の行でフォーマットされます。

メモ帳のinput2.txtの例。

  id above value above the sky id below value under the chair

私の実際のtxtファイルにはより多くのデータが含まれているため、この入力をidで再解析することはできません...これは一貫性がないため、文字列またはreg式を検索することはできません。

find.awk

 FNR==NR  { id[$0]; next }  
 $0 in id { f=1 }           
 f                          
 NF==0    { f=0 }     

そして、なぜ私のawkが機能しないのかについての考えは?

4

1 に答える 1

1

awk を実行する前に、入力ファイルに対して「dos2unix」を実行します。男dos2unix。

于 2013-03-13T01:23:33.537 に答える