Unix 从第6行开始从所有txt文件执行Sed,并能够在单个文件中输出所有结果
我将使用awk 要执行以下操作: 我需要从第6行的所有*.txt文件中删除所有结果,直到结束。所有结果都应包含在一个新的文件中,并在结果之前包含每个文件的名称 示例:如果有不同的txt文件,则结果应该是从第3行到最后的一个单独的文本Unix 从第6行开始从所有txt文件执行Sed,并能够在单个文件中输出所有结果,unix,awk,sed,grep,Unix,Awk,Sed,Grep,我将使用awk 要执行以下操作: 我需要从第6行的所有*.txt文件中删除所有结果,直到结束。所有结果都应包含在一个新的文件中,并在结果之前包含每个文件的名称 示例:如果有不同的txt文件,则结果应该是从第3行到最后的一个单独的文本 file 1 3 4 5 file 2 3 4 5 file 3 3 4 5 向我建议的功能 awk 'FNR == 1 {print FILENAME}; FNR>=6' ./*.txt > output 我的文件看起来像以下原始文件: file
file 1
3
4
5
file 2
3
4
5
file 3
3
4
5
向我建议的功能
awk 'FNR == 1 {print FILENAME}; FNR>=6' ./*.txt > output
我的文件看起来像以下原始文件:
file 1
1
2
3
4
5
Done
file 2
1
2
3
4
5
Done
需要文件
file 1
2
3
4
5
file 2
2
3
4
5
6
在中间有一条空行,在删除“完成”的最后一行时,将awk
$ awk 'FNR==1{print FILENAME} FNR>1{print p} {p=$0}'
延迟打印,默认情况下跳过最后一行
从第n行开始,将FNR>1更改为FNR>n