在awk中,可以使用FILENAME来确定当前处理的文件名。因此,可以使用条件判断语句来判断当前是否正在处理特定的文件,并根据需要执行相应的操作。
下面是一个示例,演示了如何在awk中从一个文件中匹配模式:
awk '
BEGIN {
# 设置要匹配的模式
pattern = "hello"
# 设置要匹配的文件名
filename = "file.txt"
}
# 对于每一行,在特定的文件中匹配模式
FNR == 1 && FILENAME == filename {
if ($0 ~ pattern) {
print "Pattern found in file:", filename
} else {
print "Pattern not found in file:", filename
}
}
' file.txt
在上面的示例中,我们通过使用BEGIN块来设置要匹配的模式和文件名。然后,在每一行中,我们使用条件表达式FNR == 1 && FILENAME == filename
来判断是否正在处理指定的文件。如果是,我们可以使用$0 ~ pattern
来匹配模式。根据匹配结果,我们可以执行相应的操作(在本例中是打印一条消息)。
请注意,上面的示例假设我们只对一个特定的文件执行操作。如果你想对多个文件执行操作,可以在BEGIN块中设置一个文件名列表,并在条件表达式中使用FILENAME == filename1 || FILENAME == filename2
来匹配多个文件。
上一篇:Awk不打印想要的内容
下一篇:awk不能打印所需的df输出