在Linux中,如果键入cat *,将得到以下内容:
LINE1从文件1
从文件1第2行
第1行从file2的
LINE1从file3的
第2行从file3的
从file3的line3中
我想在文件之间显示一个分隔符。事情是这样的:
一号线从文件1
,从2号线的file1
XXXXXXXXXXXX
一号线从文件2
XXXXXXXXXXXX
一号线从file3的
2号线从文件3
从文件3 3号线
用内胆轻松打字就可以轻松做到这一点吗?
在Linux中,如果键入cat *,将得到以下内容:
LINE1从文件1
从文件1第2行
第1行从file2的
LINE1从file3的
第2行从file3的
从file3的line3中
我想在文件之间显示一个分隔符。事情是这样的:
一号线从文件1
,从2号线的file1
XXXXXXXXXXXX
一号线从文件2
XXXXXXXXXXXX
一号线从file3的
2号线从文件3
从文件3 3号线
用内胆轻松打字就可以轻松做到这一点吗?
Answers:
如果您对分隔符的外观不太挑剔:
tail -n +1 *
tail -n X
显示最后的X行。tail -n +X
从X线开始,从1开始,即它显示了除第一(X-1)行外的所有行。
cd /to/your/directory; for each in *; do cat $each; echo "XXXXXXXXXXX"; done
awk 'FNR==1 && NR!=1 {print "XXXXXXXXXXXX"}{print}' *
要么
awk 'FNR==1 {print "XXXXXX", FILENAME, "XXXXXX"}{print}' *
要么
awk 'FNR==1 {print "XXXXXX File no. " ++count, "XXXXXX"}{print}' *
仅使用Bash(否cat
):
for file in *; do printf "$(<"$file")\nXXXXXXXXXXXX\n"; done
编辑:
在AWK 4中:
awk 'BEGINFILE {print "XXXXXXXXXXXX"}{print}' *
您可以使用任何分隔符,例如此答案中其他示例中的分隔符。如果要将分隔符放在每个文件的末尾,请更改BEGINFILE
为ENDFILE
。由于它是有条件的(而不是暗示执行顺序),因此它仍可以出现在脚本的开头。