簡體   English   中英

awk +從雙引號定義的行中打印字段

[英]awk + print the field from line that defined with double quotes

如何從用雙引號定義的行中打印第三個字段

例如

echo activate.bash /home/adm/run.sh "run on machine with eth2 active" "94061" | awk '{print $3}'

我希望awk將打印雙引號中的第三個文件

 run on machine with eth2 active

但它的印刷品

 run

所以我需要在ksh語法中解決什么?

其他例子

echo 123 123 "1 2 3 4 5" | awk '{print $3}'

應該打印

1 2 3 4 5

您可以在awk中使用自定義字段分隔符,如下所示:

s='activate.bash /home/adm/run.sh "run on machine with eth2 active" "94061"'
echo "$s" | awk -F '"' '{print $2}'
run on machine with eth2 active

PS:更好地使用:

awk -F '"' '{print $2}' <<< "$s"

工作代碼演示

讓我們來看下面的例子:

 cat numbers
 123 123 "run on machine with eth2 active" "94061"


cat numbers | awk -F '"' 'BEGIN{OFS=" ";} {print $2;}'

輸出:在啟用了eth2的計算機上運行

暫無
暫無

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

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