给定以下命令,

echo "1: " | awk '/1/ -F ":" {print $1}'

为什么AWK输出:

1:

?


当前回答

也可以使用正则表达式作为字段分隔符。下面将使用正则表达式将数字“10”设置为分隔符来打印“bar”。

echo "foo 10 bar" | awk -F'[0-9][0-9]' '{print $2}'

其他回答

或者你可以用:

echo "1: " | awk  '/1/{print $1-":"}' 

这是一个非常有趣的方程。

也可以使用正则表达式作为字段分隔符。下面将使用正则表达式将数字“10”设置为分隔符来打印“bar”。

echo "foo 10 bar" | awk -F'[0-9][0-9]' '{print $2}'
echo "1: " | "456:abc:515:xyz "

awk -F: NF=/1/

      1    |  456

更新:意识到我之前的回答有多啰嗦

-F是命令行参数,不是AWK语法。试一试:

echo '1: ' | awk -F  ':' '/1/ {print $1}'

-F是awk本身的参数:

$echo "1: " | awk -F":" '/1/ {print $1}'
1