我打算打印不同子目录中的文件列表的特定行。假设我们有一个主文件夹和t001到t010子文件夹。我每个都有一个data.text。 如果所有文件都在一个目录中,我们只能来自here:
awk 'FNR==3' Files*
但这里的文件位于子目录中。你有什么主意吗?
修改: 我想我们可以输入:
awk 'FNR==3' ./t*/data.txt
在这里,我无法找到包含我正在寻找的数据的文件。当我使用时:
grep -r -A 1 "string" *
我可以在string
之后看到我正在寻找的内容并找到目录,但在这里我只需要字符串下面的行。
答案 0 :(得分:1)
find . -name "data.txt" -exec awk 'FNR==3' '{}' \;
如果您还需要像grep输出中那样打印文件名,那么您可以使用FILENAME
这样做
find . -name "data.txt" -exec awk 'FNR==3 {print FILENAME ": " $0}' '{}' \;
或
awk 'FNR==3 {print FILENAME ": " $0}' ./t*/data.txt
在FILENAME
中查找man awk
以获取更多信息。