【发布时间】:2014-12-03 12:00:03
【问题描述】:
我有以下 awk 命令:
awk -v RS=! -v ORS= '/abc/ && /def/ {print FILENAME;}' files
这会在 files 中查找每个文件,用“!”分隔文件中的每个记录,然后将记录与“abc”和“def”匹配。然后上面的代码将打印文件的名称。如果我删除{print FILENAME},它将打印整个记录(如果匹配)。
文件看起来像:
abc1
bce
bcd
def
!
abc2
bce
def
!
我想打印出文件名和匹配 'abc' 的行。例如:
file1
abc1
file2
abc2
abc3
我该怎么办?
【问题讨论】:
-
如果没有匹配的文件,是否要打印文件名?您是否需要在示例 awk 脚本的上下文中完成此操作(修改该脚本)?或者像@nu11p01n73R 的回答可以接受吗?
标签: awk