ファイルをdos行末からUNIX行末に再帰的に変換する


11

すべての行末をDOSからUNIXに変換するディレクトリおよびサブディレクトリ全体で実行できるコマンドを探しています。

ファイルがテキストかバイナリかを検出できるはずです。

dos2unixmacportsを使用してインストールしましたが、再帰オプションが見当たらないようです。


ファイルがテキストまたはバイナリである方法を定義しますか?
user151019 14年

テキスト:32未満のASCIIはありません。ただし、TAB、CR、LFは除きます。
マックスリード14年

回答:


22

試してくださいfind . -name "*" -type f -exec dos2unix {} \;


dos2unixシステムで使用できない場合は、次のスクリプトを使用できます(名前を付けて保存しdos2unix、実行可能ファイルとして設定します)。

#!/bin/sh

perl -pi -e 's/\r\n/\n/;' $*

このコマンドをGitリポジトリのルートで実行しないでください。実行すると、リポジトリが台無しになります。
ニック

また、perl -pi -e 's/\r\n|\n|\r/\n/;' $*ソース)を使用して運が良かった
Nick

1

ここに1行のシェルコードがあります find . -name "*" -type f -exec perl -pi -e 's/\r\n/\n/;' {} \;


1行の回答は推奨されません。詳細を追加するか、コメントしてください。
マックスリード14年

宣伝どおりに動作します!他に何を追加しますか?;-)
太鼓

2
うーん...まあそれはいくつかのPNGファイルを台無しにしました。取り扱いに注意して
和太鼓
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.