パイプ文字|
または文字>
を含む行をgrepするにはどうすればよいですか。
files content:
|this is test
where is >
this is none
今私がgrepコマンドを使用する必要があるのは
grep -iE "<some expression>" file_name
出力:
|this is test
where is >
標準のgrep
構文:
grep '[>|]'
または
grep -e '>' -e '|'
または
grep '>
|'
または
grep -E '>|\|'
GNU grepを使用している場合、これはor演算子(|
)、エスケープする必要があります(前にバックスラッシュ\
)。したがって、パイプまたは大なり記号のいずれかを含む行を見つけるには、文字列にor演算子を含めます:
grep '|\|>' infile
出力:
|this is test
where is >
ブラケット式を使用して、必要な文字のいずれかに一致します。
grep "[|>]" infile
出力:
|this is test
where is >
これを行う正しい方法は、POSIXで指定されている-eフラグを使用することです。例えば:
grep -e '>\||' infile