Shell切割grep命令

时间:2017-04-21 08:23:03

标签: shell

req=`bxp report change-summary $startDate $startDate  -iad -y | grep -A2 "Request ID" 

上面的脚本给出了以下输出

Request ID ------------ 10481066

我想只剪切10481066号码,我尝试使用号码grep和其他cut无法正常工作。有人可以建议吗?

4 个答案:

答案 0 :(得分:1)

假设您的输出Request ID ------------ 10481066全部在一行中,您只需使用此grep命令替换awk

req=$(bxp report change-summary $startDate $startDate -iad -y|awk '/Request ID/{print $NF}')

答案 1 :(得分:0)

awk的一些替代方案:

$ egrep -o '[0-9]+' <<<"This is a line with Request ID ------------ 10481066"
$ cut -d' ' -f4 <<<"Request ID ------------ 10481066"
$ egrep -o '[0-9]+$' <<<"This is a line with number 35546 with Request ID ------------ 10481066"

以上都返回10481066

PS:Cut default delimiter is tab,你需要声明-d选项空格作为分隔符,以便切割以处理你的数据。

答案 2 :(得分:0)

我就这样做了

REQ = bxp report change-summary $startDate $startDate -iad -y | grep -A2 "Request ID" | grep -E "^[0-9]"

感谢您的帮助

答案 3 :(得分:0)

我会操纵最后的字符串,

req="Request ID ------------ 10481066"
result=${req%-*}