同じファイルで2つのgrepコマンドを実行するには? [コピー]

同じファイルで2つのgrepコマンドを実行するには? [コピー]

ファイルがあります。スラッシュで始まらず、www.スラッシュを含まない行を選択したいと思います。結果を出力したいです。result.txt

最初の要件を満たすには、次の手順を実行します。

grep -v '^www\.' myfile.txt > result.txt

2番目の目標を達成するためにresult.txtを取得して実行します。

grep -v '/' result.txt > result2.txt

ファイルから複数のコマンドを実行し、結果を1つの出力ファイルに保存するためのより良いショートカットはありますか?result.txt

|左側のコマンドの出力が|右側のコマンドの入力となる複数のコマンドを実行したいことを知っています|。私が知らないのは、grepや他のコマンドを使用する場合、|つまり次のようにする必要があるということです。

grep -v '^www\.' myfile.txt | grep -v '/' > result.txt

または

grep -v '^www\.' myfile.txt | grep -v '/' mfile.txt > result.txt

答え1

grep -v -e '^www\.' -e '/' myfile.txt > result.txt

答え2

パイプの使用について心配しないでください。 Alexanderの答えは最も素晴らしく純粋ですが、最初に最良の公式を探している場合は、使用するいくつかの手順があります。

  1. head file |grep 'first-condition' |grep 'next-conditon'::概要を提供します
  2. cat file |grep 'first-condition' |grep 'next-conditon' |wc -l:: 金額を教えてください
  3. grep --color 'complex-condition':: 実際の選択を強調

最後のステップでは、次のような非常に複雑な正規表現を作成できます。

egrep -v '(^www\.)|(/)' myfile.txt > result.txt

時には、他の文字列解析コマンドなどを使用する必要がある場合は、awkパイプを使用するのが非常に便利です。sedcut

関連情報