如何打印不同目录中一组文件的特定行

How to print specific line of a group of files in defferent directories

我将打印不同子目录中文件列表的特定行。假设我们有一个主文件夹和 t001 到 t010 子文件夹。我每个人都有一个 data.text。 如果所有文件都在一个目录中,我们可以简单地从 here:

awk 'FNR==3' Files*

但这里的文件在子目录中。你有什么主意吗?

编辑: 我想我们可以输入:

awk 'FNR==3' ./t*/data.txt

我在这里找不到包含我要查找的数据的文件。当我使用 :

grep -r -A 1 "string" *

我可以在 string 之后的行中看到我要查找的内容,还可以找到目录,但这里我只需要字符串下面的行。

find . -name "data.txt" -exec awk 'FNR==3' '{}' \;

how to run find -exec

编辑

如果您还需要在 grep 输出中打印文件名,那么您可以使用 FILENAME 来完成

find . -name "data.txt" -exec awk 'FNR==3 {print FILENAME ": " [=11=]}' '{}' \;

awk 'FNR==3 {print FILENAME ": " [=12=]}' ./t*/data.txt

man awk 中查找 FILENAME 以获取更多信息。