スクリプトを実行するファイルには、DOS 行末があります。 Windows マシンで作成された可能性があります。
dos2unix
を使用 Unix テキスト ファイルに変換します。
または、 tr
まで実行します :
tr -d '\r' <input.txt >input-unix.txt
次に input-unix.txt
を使用します それ以外の場合は正しい awk
コード。
awk
を変更するには 入力ファイルの代わりのコード:
awk -F, '$7 == "-99\r"' input.txt >output.txt
これにより、行末のキャリッジ リターンが考慮されます。
または、
awk -F, '$7 + 0 == -99' input.txt >output.txt
これにより、7 番目の列が数値として解釈され、キャリッジ リターンが「削除」されます。
同様に、
awk -F, 'int($7) == -99' input.txt >output.txt
\r
も削除します .
awk -F, '{if($7==-99)print $0}'
そうします...