0

いくつかの正規表現を理解するのに苦労しています。次のようなテキスト ファイルで、2 つのパイプ文字の間の特定のフィールドを検索しようとしています。

|nope|target|tree|
|target|nope|nah|

最初の行のみを返すには、grep でどのような正規表現を使用しますか? より具体的には、2番目のフィールドにある場合にのみ「ターゲット」を見つけます

4

3 に答える 3

2

2 番目のフィールドがターゲットである行を出力します。

kent$  echo "|nope|target|tree|
|target|nope|nah|"|awk -F'|' '$3=="target"'
|nope|target|tree|
于 2013-02-14T23:38:34.700 に答える
0

質問は少し不明確ですが、私はあなたがこのようなものが欲しいと思います:

grep '|.*|target|.*|' my_file.txt
于 2013-02-14T23:49:53.363 に答える
0

2 番目のフィールドを一致させるには:

grep "^|[^|]*|target|" file

結果:

|nope|target|tree|

説明:

^          # match start of line
|          # a pipe symbol
[^|]*      # anything not a pipe symbol any number of times
|          # a pipe symbol
target     # the word 'target'
|          # a pipe symbol
于 2013-02-15T00:15:43.827 に答える