2017-04-21 109 views
0
req=`bxp report change-summary $startDate $startDate -iad -y | grep -A2 "Request ID" 

上述腳本給出以下輸出殼牌切grep命令

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

我希望削減僅數10481066,我試圖與數grepcut這是行不通的。任何人都可以建議

+0

是'請求ID - ---------- 10481066'全部在單行? – anubhava

+0

該數字是該行中的第四個*空格*分隔字段。使用[cut]命令應該非常容易(http://man7.org/linux/man-pages/man1/cut.1.html)。 –

回答

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:剪切默認分隔符是標籤,你需要用聲明選項空間作爲分隔符以便與您的數據一起使用。

1

假設你的輸出Request ID ------------ 10481066是在一個單一的線,你可以用這個awk命令替換grep

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

我只是做了這樣

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

任何方式感謝您的幫助

+0

這是一種低效的方法,因爲它涉及2個附加命令。 – anubhava

0

我會做操縱最終的字符串,

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