1. ホーム

[解決済み】Unixでキャリッジリターンを削除する。

2022-04-03 02:07:05

質問

キャリッジリターンをすべて削除する最も簡単な方法は何ですか? \r をUnixのファイルから削除してください。

解決方法は?

キャリッジリターンのことだと思われますが ( CR , "\r" , 0x0d ) にある。 終了 は、ファイル内でやみくもに使うのではなく、行の中に入れてください(文字列の真ん中に入れることも可能です)。このテストファイルを CR を1行目の末尾にのみ追加しました。

$ cat infile
hello
goodbye

$ cat infile | od -c
0000000   h   e   l   l   o  \r  \n   g   o   o   d   b   y   e  \n
0000017

dos2unix がインストールされている場合は、それを利用するのがよいでしょう。

$ cat infile | dos2unix -U | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

もし何らかの理由で dos2unix が利用できない場合は sed がやってくれるでしょう。

$ cat infile | sed 's/\r$//' | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

もし何らかの理由で sed が利用できない場合は ed は、複雑な方法で、それを行います。

$ echo ',s/\r\n/\n/
> w !cat
> Q' | ed infile 2>/dev/null | od -c
0000000   h   e   l   l   o  \n   g   o   o   d   b   y   e  \n
0000016

がない場合は 何れも これらのツールがインストールされている場合、ファイルを変換するよりも大きな問題があります :-)