0

我无法理解一些正则表达式。我正在尝试在文本文件中搜索 2 个竖线字符之间的特定字段,例如

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

我会使用什么样的 grep 正则表达式来只返回第一行?更具体地说,仅在第二个字段中找到“目标”

4

3 回答 3

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

要匹配第二个字段:

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 回答