我想知道 awk 中是否有一个内置命令来获取您刚刚匹配的短语的字段编号。
Banana is yellow.
awk { /yellow/{ for (i=1;i<=NF;i++) if($i ~/yellow/) print $i}'
有没有办法避免编写循环?
最佳答案
如果输入字符串是单行字符串,您可以将记录分隔符设置为字段分隔符。这样做你可以使用 NR
打印位置:
awk 'BEGIN{RS=FS}/yellow/{print NR}' <<< 'banana is yellow'
3
关于匹配模式的 awk 字段数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40963012/