如何读取多个文件的第二行,然后将结果输出到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)
使用您显示的示例,尝试遵循awk在 GNU 中编写和测试的代码awk。只需读取每个文件的第二行(因为FNR是每个文件启动后重置的变量),如果它的值是2打印该行并使用nextfile它将光标带到下一个文件并跳过所有行以节省一些周期和时间。
由于awk可以读取自身内部的多个文件,因此*.txt在这里传递给它。当从中读取文件时,awk我们不需要使用cat命令,因为awk可以读取文件本身。
awk 'FNR==2{print;nextfile}' *.txt
Run Code Online (Sandbox Code Playgroud)