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

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


萧十郎
浏览 253回答 2
2回答

HUX布斯

假设您有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,并且后缀将其++递增,但仅在返回其值之后。

叮当猫咪

与gnu sedsed -ns '1s/.*/=============\n&/;w final.txt' lab*.txt'-s''--separate'默认情况下,'sed'会将命令行上指定的文件视为单个连续的长流。此GNU'sed'扩展名允许用户将它们视为单独的文件:范围地址(例如'/ abc /,/ def /')不允许跨越多个文件,行号相对于每个文件的开头, '$'指每个文件的最后一行,并且从'R'命令调用的文件会在每个文件的开头重新缠绕。
打开App,查看更多内容
随时随地看视频慕课网APP