3つのファイルを含むフォルダーがあります。
$ ls
aaa.txt abc.txt def.txt
abc.txt
ファイルを除いて出力をgrepしたい場合は、次のことができます。
$ ls | grep -v 'abc'
aaa.txt
def.txt
2つのファイルを除外したい場合は、次のことができます。
$ ls | grep -v 'abc' | grep -v 'def'
aaa.txt
しかし、1つの正規表現と1つのgrep
呼び出しを使用してこれを行うにはどうすればよいですか?
これは動作しません:
$ ls | grep -v '[(abc)(def)]'
これもしません:
$ ls | grep -v "abc|def"
|
BRE(デフォルトで使用)でデフォルトで有効になっていない交互一致には、ERE(拡張正規表現)パターンをgrep
使用します
grep -vE "abc|def"
または拡張を使用しますgrep
。つまりegrep
、デフォルトでEREを有効にします。
egrep -v "abc|def"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加