テキストファイルのすべてのパターンを含むすべての行を取得します。

テキストファイルのすべてのパターンを含むすべての行を取得します。

次の行を含むテキストファイルのパターンと正確に一致するすべての行をフィルタリングしたいと思います。

c1 and c2 and c15 => r1
c1 and c3 and c11 => r2
c1 and c2 => r3
c2 and c16 => r4

私は以下grepを試しました。

grep -w "c1" file | grep -w "c2"

正解を返します。

c1 and c2 and c15 => r1
c1 and c2 => r3

ただし、6つ以上のgrepコマンドをネストするとエラーが返されます。

Command ' grep' not found

しかし、似たようなものが18個あります。

grep入れ子にできるコマンドの数には制限があることがわかります。これを行う他の方法はありますか?

とても感謝しています。

ベストアンサー1

Command ' grep' not found

これはタイプミスのように聞こえます。パイプ文字の後に通常の空白の代わりに改行のない空白を打ったからです。スペースはコマンド名の一部です。一般的な空白の場合は、空白を明示的に引用またはエスケープする必要があります。

... | " grep"`

ただし、パイプがAltGr-何かであり、切り捨て防止スペースがAltGr-spaceであるいくつかのキーマップ(私と同じ)では、修飾キーをゆっくりと置くとエラーが発生します。 (またはMacではAltGrの代わりにOptionを使用してください。)

コマンドラインをもう一度入力してください。長期的な解決策は、キーマップを変更して対応するトラップを削除するか、入力を開始することです... |grep。これにより、少なくとも顕著な違いを得る可能性が高くなります。

おすすめ記事