为了账号安全,请及时绑定邮箱和手机立即绑定

将多个文件附加到单个输出文件,但文件之间带有消息

将多个文件附加到单个输出文件,但文件之间带有消息

萧十郎 2021-04-05 21:17:14
我想将多个名为lab_X.txt的文件附加到一个输出文件final.txt中。知道一个文件夹中的所有文件都是我需要的文件后,我将它们移到当前目录并使用了cat *.txt > final.txt,因为知道会>覆盖该文件。我想在类似于的文件之间插入一条简单消息=============,可能吗?
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

假设您有Gnu awk:

awk 'BEGINFILE{print "============="}1' lab*.txt > final.txt

BEGINFILE特殊图案(徒劳无功扩展)只是每个文件的第一行之前触发。FILENAME如果您想在分隔线中包含名称,它会定义变量。

1在年底是这始终是真正的模式。由于没有动作,因此将执行默认动作,该动作将打印该行。

这也将在开始时打印该行。如果您确实不希望这样做,可以添加一张支票:

awk 'BEGINFILE{if(nfiles++)print "============="}1' lab*.txt > final.txt

没有什么特别的nfiles。与其他任何awk变量一样,该变量实际上被初始化为0,并且后缀将其++递增,但仅在返回其值之后。


查看完整回答
反对 回复 2021-04-16
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

与gnu sed

sed -ns '1s/.*/=============\n&/;w final.txt' lab*.txt

'-s''--separate'
默认情况下,'sed'会将命令行上指定的文件视为单个连续的长流。此GNU'sed'扩展名允许用户将它们视为单独的文件:范围地址(例如'/ abc /,/ def /')不允许跨越多个文件,行号相对于每个文件的开头, '$'指每个文件的最后一行,并且从'R'命令调用的文件会在每个文件的开头重新缠绕。


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信