簡體   English   中英

AWK刪除特定字符

[英]Awk remove specific characters

我有命令,這給了我telnet的輸出。 telnet的完整輸出如下所示:

telnet myserver.com 1234

服務器,名稱= MyServer,年齡= 123,版本= 1.23,...,...,...

此命令應僅過濾我要過濾的Age- “ Age = 123 ”之后的數字:

echo "\n" | nc myserver.com 1234 | (awk -F "=" '{print $3}')

而不是123,它為我提供了以下輸出:

123,Ver

有沒有辦法在Age =之后獲得數字

這只是糟糕的awk過濾參數,但是我嘗試了awk的其他方式,但這給了我幾乎最好的結果...謝謝您的幫助。

編輯:我忘記了,Age =之后的數字每天是動態+1 ...

我不確定echo "\\n"部分,但是我認為這應該可以完成您想要的操作:

nc myserver.com 1234 | awk -F "," '{ split($3, a, /=/); print a[2] }'

我沒有在=上拆分字段,而是在, 然后將第三個字段拆分為=上的數組a ,並打印后半部分。

我還刪除了awk調用周圍的( ) ,它不必要地創建了一個子shell。

如果你自信的回應永遠變化的含=或者,在其他地方,你可以進一步簡化了awk的表達式:

awk -F'[=,]' '{ print $5 }'

方括號表達式允許在=,上拆分字段,從而使您對第五個字段感興趣的部分。

您可以運行awk命令兩次。

awk -F "=" '{print $3}'|awk -F "," '{print $1}'

您還可以使用cut命令:

cut -d "=" -f 3|cut -d "," -f 1
echo "\n" | nc myserver.com 1234 | awk -F "," '{print substr($3,6)}'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM