Bash:awk输出文件第2~4行

awk 'NR == 2,NR == 4 { print }' xxxx
输出xxxx的第2~4行,为什么不是输出第2、4两行呢?是涉及到了哪个地方我理解有有误呢?多谢

阅读 4k
2 个回答

这是awk,在执行一个命令之前,比如print,对命令进行定址操作,逗号前是开始执行命令的条件,逗号后的是结束执行特定命令的条件,这个和在vim中选定多少行,然后再进行某些替换操作是一个道理,:10,20s/hello/world/g,这个命令就是10到20行,所有的hello都替换成world.

这种写法是范围选取,如果要输出第2和第4行,可以用||

awk 'NR == 2 || NR == 4 { print }' xxxx
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进