1

これまでのところ、私はこれまでに得ました:

prompt$ find path/to/project -type f | grep -v '*.ori|*.pte|*.uh|*.mna' | xargs dos2unix 2> log.txt

ただし、拡張子が .ori、.pte、.uh、および .mna のファイルは引き続き表示されます。

4

2 に答える 2

1

一方通行:

find path/to/project *.* -type f ! \( -name '*.ori' -o -name '*.pte' -o -name '*.uh' -o -name '*.mna' \) 
  | xargs dos2unix 2> log.txt
于 2013-05-15T13:21:25.167 に答える
1

除外を のままにしておくことをお勧めしfindます。ビレイの回答を参照してください。

パターンの問題grepは、それをシェル グロブとして指定したことです。デフォルトでgrepは、基本正規表現 (BRE) が最初の引数として期待されます。したがって、grep パターンを次のように置き換えると、.*\.\(ori\|pte\|uh\|mna\)$動作するはずです。または、拡張正規表現 (ERE) を使用したい場合は、 で有効にすることができます-E。次に、同じ除外を次のように表現できます.*\.(ori|pte|uh|mna)$

完全なコマンドライン:

find . -type f | grep -vE '.*\.(ori|pte|uh|mna)$'
于 2013-05-15T13:19:31.997 に答える