これら2つのgrepステートメントを結合する方法

これら2つのgrepステートメントを結合する方法

空ではなく、で始まらない行を選択する必要があります//。次のように2つの個別のgrepコマンドを実行できます。

空行ではなく行を抽出するには:

grep -v -E '^$' test.txt 

次に始まらない行を抽出するには、次のようにします//

grep -v '//' test.txt 

これら2つのコマンドを1つにまとめるにはどうすればよいですか?

答え1

この試み、

 grep -ve '^$' -e '^//' file

男性の場合:

-e モード、 --regexp=モード

Use PATTERN as the pattern.  This can be used to specify multiple search patterns,

または、拡張正規表現(-E)を使用します。

 grep -v -E '^($|//)' file

男性の場合:

2 つの正規表現は中位演算子 | で連結できます。結果の正規表現は、2つの代替式に一致するすべての文字列に一致します。

答え2

ステートメントがマージされました(エラーは後述)。

grep -v -E '^$' | grep -v '//' test.txt

左から最初の部分(まで|)にのみ空白行が含まれていません。最初のエラーは、最も右側のステートメントが提供されることですtest.txt。両方のコマンドがこの入力に対して機能するには、一番左のステートメントに指定する必要があります。私の言葉は:

grep -v -E '^$' test.txt | grep -v '//'

2番目のエラーは、'//'定義が実際に行の始まりを示す'^//'位置にあるはずです。^すべてを一度に:

grep -v -E '^$' test.txt | grep -v '^//'

これらのチェーンの使用はgrep一般的な慣行です。これを1つのプロセスにまとめる方法のgrep詳細については、他の回答を参照してください。

答え3

したがって、次から始まる行が必要です//

grep -E '^([^/]|.[^/])' file

関連情報