如何使用cat读取多个TXT文件的第二行并输出结果?

Ker*_*bol 1 awk cat

如何读取多个文件的第二行,然后将结果输出到TXT文件?

到目前为止,我可以使用以下命令读取一个文件的第二行:

cat file-1.txt | awk 'NR == 2'
Run Code Online (Sandbox Code Playgroud)

但是,它正在读取数百个文件的第二行并将结果写入 TXT 文件,但我陷入了困境。

cat file-1.txt | awk 'NR == 2'
cat file-2.txt | awk 'NR == 2'
...
cat file-199.txt | awk 'NR == 2'
cat file-200.txt | awk 'NR == 2'
Run Code Online (Sandbox Code Playgroud)

Rav*_*h13 5

使用您显示的示例,尝试遵循awk在 GNU 中编写和测试的代码awk。只需读取每个文件的第二行(因为FNR是每个文件启动后重置的变量),如果它的值是2打印该行并使用nextfile它将光标带到下一个文件并跳过所有行以节省一些周期和时间。

由于awk可以读取自身内部的多个文件,因此*.txt在这里传递给它。当从中读取文件时,awk我们不需要使用cat命令,因为awk可以读取文件本身。

awk 'FNR==2{print;nextfile}' *.txt
Run Code Online (Sandbox Code Playgroud)