我无法理解一些正则表达式。我正在尝试在文本文件中搜索 2 个竖线字符之间的特定字段,例如
|nope|target|tree|
|target|nope|nah|
我会使用什么样的 grep 正则表达式来只返回第一行?更具体地说,仅在第二个字段中找到“目标”
我无法理解一些正则表达式。我正在尝试在文本文件中搜索 2 个竖线字符之间的特定字段,例如
|nope|target|tree|
|target|nope|nah|
我会使用什么样的 grep 正则表达式来只返回第一行?更具体地说,仅在第二个字段中找到“目标”
打印第二个字段是目标的行:
kent$ echo "|nope|target|tree|
|target|nope|nah|"|awk -F'|' '$3=="target"'
|nope|target|tree|
这个问题有点不清楚,但我想你想要这样的东西:
grep '|.*|target|.*|' my_file.txt
要匹配第二个字段:
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