このように同じ行でコマンドgrepを3回使用しています
ls -1F ./ | grep / | grep -v 0_*.* | grep -v undesired_result
3回パイプする代わりに、それらを1つのコマンドに組み合わせる方法はありますか?
このように同じ行でコマンドgrepを3回使用しています
ls -1F ./ | grep / | grep -v 0_*.* | grep -v undesired_result
3回パイプする代わりに、それらを1つのコマンドに組み合わせる方法はありますか?
1つのコマンドラインでポジティブ検索(grep <something>
)とネガティブ検索()の両方を実行する方法はありませんが、サポート(または)があれば、サブプロセスの数を1つ減らすことができます。それを超えるには、必要なものまたは不要なものすべてに正確に一致する特定の正規表現を考え出す必要があります。grep -v <something>
grep
-E
egrep
ls -1F ./ | grep / | grep -E -v '0_*.*|undesired_result'
実際、最初の文は完全に正しいわけではないと思いますがegrep
、正と負の両方の部分を正しく含み、部分のすべての可能な順序をカバーする適切な正規表現を構築することは、価値があるよりもイライラするかもしれません...