我有5个文件,我想在每个文件的开头添加序列号和制表符,但是第二个文件应该以第一个文件的最后一个数字开头,依此类推:
file1
line1
line2
....
line13
file2
line1
line2
file5
line1
line2
输出文件1
1 line1
........
13 line13
输出文件2
14 line1
15 line2
依此类推
答案 0 :(得分:4)
如果要连接文件和数字行,请使用cat
:
cat -n file1 file2 file3 file4 file5
如果要为每个输入文件创建一个单独的输出文件,请使用awk:
awk '{
printf "%d\t%s\n",NR,$0 > ("output_"FILENAME)
}' file1 file2 file3 file4 file5
读取file1..5
,对行编号并将其输出到output_file1..5
。请注意,如果文件太多,则上述awk命令将失败,并显示诸如太多打开的文件描述符之类的错误。在这种情况下,使用以下命令将在输入文件更改时关闭前一个文件。
awk '
FILENAME!=f{close("output_"f);f=FILENAME}
{printf "%d\t%s\n",NR,$0 > ("output_"f)}
' file1 file2 file3 file4 file5