假设我有这行文字:
#cat numbers.txt
Numbers!!!! John=55 May=43 RandomData Alex=72 Ben=90 End
但我只对约翰的号码感兴趣。如何删除所有其他我不想要的东西并将输出变成:
#cat numbers.txt | <some command line magic>
John=55
注意:我不知道“John”在文本文件中的位置,也不知道分配给 John 的号码是多少。
答案1
我会做:
awk '{ print $2 }' numbers
John=55
前提是您想要的信息始终位于第二个字段中。
编辑:按照你的编辑,因为您不知道 John 在文件中的位置,所以我会这样做:
egrep -o 'John=[0-9]{2}' numbers
John=55
答案2
如果您只想要 John= 和以下空格分隔符之间的内容(可以是任意数量的数字,并且您不需要提前知道)
grep -Po 'John=\K.*?(?= )' numbers