これまでのところ、私はこれまでに得ました:
prompt$ find path/to/project -type f | grep -v '*.ori|*.pte|*.uh|*.mna' | xargs dos2unix 2> log.txt
ただし、拡張子が .ori、.pte、.uh、および .mna のファイルは引き続き表示されます。
一方通行:
find path/to/project *.* -type f ! \( -name '*.ori' -o -name '*.pte' -o -name '*.uh' -o -name '*.mna' \)
| xargs dos2unix 2> log.txt
除外を のままにしておくことをお勧めしfind
ます。ビレイの回答を参照してください。
パターンの問題grep
は、それをシェル グロブとして指定したことです。デフォルトでgrep
は、基本正規表現 (BRE) が最初の引数として期待されます。したがって、grep パターンを次のように置き換えると、.*\.\(ori\|pte\|uh\|mna\)$
動作するはずです。または、拡張正規表現 (ERE) を使用したい場合は、 で有効にすることができます-E
。次に、同じ除外を次のように表現できます.*\.(ori|pte|uh|mna)$
。
完全なコマンドライン:
find . -type f | grep -vE '.*\.(ori|pte|uh|mna)$'