如何从用双引号定义的行打印第三个字段
例如
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
答案 0 :(得分:0)
您可以在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"
答案 1 :(得分:0)
我们采取以下示例:
cat numbers
123 123 "run on machine with eth2 active" "94061"
cat numbers | awk -F '"' 'BEGIN{OFS=" ";} {print $2;}'
输出:在启用了eth2的计算机上运行