web-dev-qa-db-ja.com

\ r \ nを\ nに変換するBashコマンドはありますか?

\ r\nを\ nに変換するBashコマンドはありますか?

WindowsからLinuxにスクリプトをアップロードするとき、物事を機能させるためにこのようなユーティリティが必要です。

19
user25321

有る:

dos2unix
28
RaYell

行末を変換できるconvというUnixユーティリティがあります。多くの場合、u2dまたはd2uまたはunix2dosまたはdos2unixへのソフトリンクで呼び出されます。

さらに、fromdosおよびtodosと呼ばれるユーティリティがあります。

5
Amardeep

Sedを使用して、.txt, .php, .js, .cssで終わることを確認します。

 sed -rie 's/\r\n/\n/' \
 $(find . -type f -iregex ".*\.\(txt\|php\|js\|css\)")
5
fitorec

翻訳( tr )はすべてのUnixで利用可能です:

tr -d '\r'  # From \r\n line end (DOS/Windows), the \r will be removed so \n line end (Unix) remains.
5
user33460

Man 1 edを使用する(以前のバックアップなしでファイルをインプレース編集する-とは異なり:sed .. -i ".bak" ...):

ed -s file <<< $'H\ng/\r*$/s///\nwq'
2
carl

POSIXでこれを行うのは注意が必要です。

  • POSIX Sed\rまたは\15をサポートしていません。たとえあったとしても、インプレースオプション-iはPOSIXではありません

  • POSIX Awk\rおよび\15をサポートしていますが、-i inplaceオプションはPOSIXではありません

  • d2uおよびdos2unixPOSIXユーティリティ ではありません、ただしex

  • POSIX ex\r\15\nまたは\12をサポートしていません

改行を削除するには:

awk 'BEGIN{RS="\1";ORS="";getline;gsub("\r","");print>ARGV[1]}' file

改行を追加するには:

awk 'BEGIN{RS="\1";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file
2
Steven Penny

はい、dos2unix。例えば:

[justin@mybox ~]$ dos2unix myfile
0
Justin Ethier

$ recode dos .. FILE
$ flip -u FILE

(Ubuntu以外のシステムにもそれぞれ存在しますが、これらのリンクは便利です。)

0
Roger Pate