从包含数字和字符串的文件中获取整行

时间:2015-09-09 09:10:36

标签: string bash numbers match

我有一个设置为特定数字的变量,即num = 56和一个充满数字和其他字符串的文件。我想匹配数字和一些字符串,并得到包含它们的整行。

例如,

我想在一个文件中匹配这是我的号码:$ num [mbits] ,如下所示。

random text in front - this is my number: 56 [mbits]  
random text in front - this is my number: 21 [mbits]  
random text in front - this is my number: 15 [mbits]  
random text in front - this is my number: 38 [mbits]  
random text in front - this is my number: 49 [mbits]  
random text in front - this is my number: 10 [mbits]  
random text in front - this is my number: 89 [mbits]

我正在使用下面的命令,但是当我包含整个字符串时它不起作用。

grep -n"这是我的号码:$ num [mbits]" info.log>> info1.log

该文件仍为空。

它只能作为 grep -n"这是我的号码:" info.log>> info1.log ,我得到了上面的所有行。我只需要一个具有特定号码的那个。

所需的输出应为

前面的随机文字 - 这是我的号码:56 [mbits]

任何帮助?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

您需要使用grep -F(固定字符串匹配):

num=56
grep -F "this is my number: $num [mbits]" info.log

否则:

grep "this is my number: $num \[mbits\]" info.log

由于[]是特殊的正则表达式字符而不是需要转义。

<强>输出:

random text in front - this is my number: 56 [mbits]