0

\rAIX で次のコマンドを使用してファイルからキャリッジ リターン ( ) を削除しようとしていますが、最後の行も削除されます。助言がありますか?

sed -e 's/\r\n/\n/g' ./excprule > ./excprule.tst

コマンド シーケンス:

dev1:> sed -e 's/\r\n/\n/g' ./test_file > ./test_file.tst
dev1:> diff test_file.tst test_file
diff: 0653-827 ファイル test_file の末尾に改行がありません。
26a27
> 予告編25

編集: perl で同じことを行うことで回避策を見つけましたが、これが機能しない理由を知りたいです。

4

1 に答える 1

1

AIX にある場合は dos2unix を使用することもできますが、sed を使用すると、

sed '$!{:a;N;s/\r\n/\n/;ta}' file

sed は、現在の行を処理するたびに改行を取り除きます (man ページを参照) \r\n

于 2010-03-24T14:20:19.707 に答える