我的输出看起来像这样
[1] "0 found |2018-07-15 22:21:09 - no new item is submitted "
如何使用bash中的正则表达式使用“ grep”提取 0 ?
谢谢!
答案 0 :(得分:0)
如果可以,awk
可以。您能不能试着跟随,让我知道这是否对您有帮助。
awk 'match($0,/\"[0-9]+/){print substr($0,RSTART+1,RLENGTH-1)}' Input_file
OR
your_command | awk 'match($0,/\"[0-9]+/){print substr($0,RSTART+1,RLENGTH-1)}'
答案 1 :(得分:0)
尝试使用此grep
选项:
grep -Po '^([0-9]+) (?=found)'
上面的行使用模式^([0-9]+) (?=found)
,该模式表示要在行的开头匹配一个数字,并紧随其后的是文本found
。
答案 2 :(得分:0)
有一种解决方案
$ sed 's/^.*"\(.*\) found .*/\1/' <<< '[1] "0 found |2018-07-15 22:21:09 - no new
item is submitted "'
0
如果perl很重要,这是另一种简单的方法
$ perl -ne 'print $1 if /(\d+) found/' <<< '[1] "0 found |2018-07-15 22:21:09 - no
new item is submitted "'
0
答案 3 :(得分:0)
我也提出了以下解决方案:
$ LOG_FILE是我要写入所有输出的文件
parsed