次のgrep式は、現在のディレクトリとサブディレクトリにあるすべての.exeと.htmlファイルを正常に表示します。grep式を逆にする方法
ls -R |grep -E .*[\.exe]$\|.*[\.html]$
この結果を逆にして、代わりに.htmlまたは.exeでないものをリストします。 (つまり、!=
です。)
次のgrep式は、現在のディレクトリとサブディレクトリにあるすべての.exeと.htmlファイルを正常に表示します。grep式を逆にする方法
ls -R |grep -E .*[\.exe]$\|.*[\.html]$
この結果を逆にして、代わりに.htmlまたは.exeでないものをリストします。 (つまり、!=
です。)
使用するコマンドラインオプション-v
または--invert-match
、
ls -R |grep -v -E .*[\.exe]$\|.*[\.html]$
grep -v
または
grep --invert-match
あなたはまたfind
を使用して同じことを行うことができます。
find . -type f \(-iname "*" ! -iname ".exe" ! -iname ".html"\)
詳細情報here。
grep
コマンドに-v
オプションを追加すると、結果が逆転します。
grep "subscription" | grep -v "spec"
'find'コマンドは、このXY問題の最も意味のある解決策です。この目的のために 'ls'と' grep'を組み合わせるのはせいぜい最高だと思われます。これは受け入れられた答えでなければなりません。 (+1) – Eric
@Eric OPの要件にかかわらず、grep式を反転することは、ファイルを見つけることよりもはるかに役立ちます。それがほとんどの人がここに来る理由だとは思わない。 – byxor