假设我有这样的文件:
tst.txt
fName1 lName1-a 222
fname1 lName1-b 22
fName1 lName1 2
我想使用此命令仅为“fName1 lName1”获取第3列:
var=`grep -i -w "fName1 lName1" tst.txt`
然而,这会以“fName1 lName1”开头的每行返回,我该如何查找完全匹配?
答案 0 :(得分:2)
你走了:
#!/bin/bash
var=$(grep -Po '(?<=fName1 lName1 ).+' tst.txt)
echo $var
诀窍是使用o
命令的grep
选项。 P
选项告诉解释器在解析模式时使用与Perl兼容的正则表达式语法。
答案 1 :(得分:1)
var=$(grep "fName1 lName1 " tst.txt |cut -d ' ' -f 3)
答案 2 :(得分:0)
你可以尝试这种方法:
grep -i -E "^fName1 lName1\s" tst.txt | cut -f3,3- -d ' '
但是,您必须确保该行以fName1
开头,并且您在lName1
之后有空格。