2012-10-25 5 views
10
私はbashスクリプトでのawkを使用しています

の終わりに制御-Mの文字を追加し、ような何かをされます各行の末尾に「M」文字が表示されます。なにが問題ですか?awkの印刷は、ライン

+2

入力ファイルに^ Mが含まれている可能性があります。その場合は、そこから削除してください。 – Guru

+1

データファイルをPCに作成しましたか?その行末は^ M^Jですが、Unixは^ Jだけを使います。 – Barmar

+4

レコードセパレータをCR-LFに設定します。つまり、 'awk -v RS = '\ r \ n' ... 'です。 – Thor

答えて

11

レコードセパレータを自動的に前のMac OSでMSシステムとCR(\r)にUnixベースのシステム、CR-LF(\r\n)上の現在のシステムの行終了、LF(\n)に設定されていますMac OS Xの場合、MSシステムで記録されたファイルを処理するには、適切な場合にレコードセパレータを設定します。

awk -v RS='\r\n' ... 
+1

Mac OS XはUnixのようなシステムで、 '\ n'行の終わりを使います。 Mac OS 9はUnixをベースにしておらず、 '\ r'行末を使用していました。 –

+0

@JonathanLeffler:そうです、訂正していただきありがとうございます。 – Thor

関連する問題