26

現在、次のコマンドを使用して dos2unix の行末を変更していますが、これは file-y ファイル用です...

sed -i 's/\r//' filename

ディレクトリ内のすべてのファイルに対してこのコマンドを実行する方法はありますか?

4

7 に答える 7

2

別のオプション:find your_dir type f -exec sed -i 's/\r//' {} \;

なぜ dos2unix コマンドを使用しないのですか? 上記の sed だけを実行している場合、(ソースによっては) 正しくない EOF を持つファイルが存在する可能性があります (cat を実行すると、その後のプロンプトがファイル出力に連結されます)。

于 2013-01-17T09:21:41.150 に答える
1
for i in `find . -type f \( -name "*.c" -o -name "*.h" \)`; do    sed -i 's/\r//' $i ; done
于 2013-01-17T06:51:56.657 に答える
1

別の参照を追加するだけです...

Ubuntu 14.04man dos2unixでは、このページには、特に再帰的変換の例が示されています。

find . -name *.txt | xargs dos2unix

マニュアルページから引用すると、これは

... 現在のディレクトリの下にあるディレクトリ ツリー内のすべての .txt ファイルを変換します ...

于 2015-06-09T07:30:36.563 に答える
0
find $(pwd) -type f | xargs -I xxx sed -i 's/\r//g' xxx
于 2014-08-25T17:56:22.560 に答える