仅抓取准确的文本以输出?


0

可以说我有这行文字:

#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的编号。

Answers:


0

我会做:

awk '{ print $2 }' numbers 
John=55

在第二个字段中提供所需的信息。

编辑:根据您的编辑,由于您不知道John在文件中的位置,因此我将执行以下操作:

egrep -o 'John=[0-9]{2}' numbers 
John=55

1
我想要的信息可以在文本文件中的任何位置。
REDBEAN

请看我的编辑。
maulinglawns

谢谢男人,这正是我所需要的。但是,如果我要问,{2}的作用是什么?
REDBEAN

{2}装置的grep任何位数[0-9]的2倍。如果需要支持更多数字,则必须相应地调整正则表达式。
maulinglawns

0

如果您只想知道John =和以下空格分隔符之间的含义(可以是任意数字,并且您不需要事先知道)

grep -Po 'John=\K.*?(?= )' numbers
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.