1. ホーム
  2. linux

[解決済み] 改行がファイルの最後の文字である場合、どのように削除すればよいのでしょうか?

2022-04-22 21:16:13

質問

いくつかのファイルで、最後の改行がある場合、その改行を削除したいのですが。 od -c は、私が実行したコマンドが、末尾の改行でファイルを書き込むことを示しています。

0013600   n   t  >  \n

私はsedでいくつかのトリックを試しましたが、私が思いついた最高のものはトリックをやっていません。

sed -e '$s/\(.*\)\n$/\1/' abc

何かいい方法はないでしょうか?

どのように解決するのですか?

perl -pe 'chomp if eof' filename >filename2

または、その場で編集する場合。

perl -pi -e 'chomp if eof' filename

[編集後記 -pi -e は、もともと -pie しかし、何人かのコメントで指摘され、@hvd が説明したように、後者はうまくいきません] 。

これは私が見たawkのサイトでは「perlの冒涜」と表現されていました。

でも、テストではうまくいきました。