如何打印不同目录中一组文件的特定行
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' '{}' \;
编辑
如果您还需要在 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
以获取更多信息。
我将打印不同子目录中文件列表的特定行。假设我们有一个主文件夹和 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' '{}' \;
编辑
如果您还需要在 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
以获取更多信息。