我想从包含给定单词最后一次出现的行的文件中获取行。
例如:
是的,有一些 情节的变化。在原文中,
凯恩试图买高政治 办公室为自己。在新版本中,
他只是把政治家放在他的工资单上。
如果我给“In”,那么我需要
办公室为自己。在新版本中,
他只是把政治家放在他的工资单上。
答案 0 :(得分:1)
尝试:
grep 'yourWord' yourFile.txt | tail -n1
或者使用sed:
sed -n '/yourWord/{$p}' yourFile.txt
答案 1 :(得分:0)
$ word="In"
$ awk -vw="$word" '{s=s$0}END{ m=split(s,str,w); print w str[m]}' file
In the new version, he just puts politicians on his payroll.
我不明白为什么有“办公室为自己”。虽然。
答案 2 :(得分:0)
这应该有效:
作为一个单行:
patt=In
sed -nr "/$patt/!b;:a;\$!N;/\n.*$patt/{h;s/\n[^\n]*\$//;g;s/^.*\n//};\$!ba;p" inputfile
如果您的sed
需要-e
:
patt=In
sed -nr -e "/$patt/!b" -e ":a" -e "\$!N" -e "/\n.*$patt/{h" -e "s/\n[^\n]*\$//" -e "g" -e "s/^.*\n//}" -e "\$!ba" -e "p" inputfile
在不同的行上:
patt=In
sed -nr "
/$patt/!b
:a
\$!N
/\n.*$patt/{
h
s/\n[^\n]*\$//
g
s/^.*\n//
}
\$!ba
p' inputfile
答案 3 :(得分:0)
我只能打印第4行和行尾
我的命令是
sed -n'4,$ p'file