在合并的 txt 文件的第一行插入文件名

在合并的 txt 文件的第一行插入文件名

我想使用粘贴命令合并多个 txt 文件,并且我希望每个 txt 文件的名称作为新文件的一部分。Txt 文件(即 01.txt)如下所示:

        X936    X937    X938
Y516    83      79      70
Y517    78      70      75
Y518    82      81      75
Y519    76      80      79
Y520    78      78      77

因此,首先我尝试在每个 txt 的第一行添加文件名,如下所示

01.txt
        X936    X937    X938
Y516    83      79      70
Y517    78      70      75
Y518    82      81      75
Y519    76      80      79
Y520    78      78      77

但不知道如何做。稍后我想使用以下方法将所有文件合并到一个表中:

paste *.txt > newfile

像这样

01.txt                          02.txt                             ....
        X936    X937    X938              X936      X937    X938   ....
Y516    83      79      70      Y516      83        79      70     ....
Y517    78      70      75      Y517      78        70      75     ....
Y518    82      81      75      Y518      82        81      75     ....
Y519    76      80      79      Y519      76        80      79     ....
Y520    78      78      77      Y520      78        78      77     ....

答案1

最简单的方法可能是将操作分为两个步骤,如下所示(\t根据文件调整 的数量):

echo 0* | sed 's/ /\t\t\t\t/g' > header.txt | paste 0* > data.txt | cat header.txt data.txt > final.txt

笔记:我假设所有文件都以 0 开头...你可能需要更改它

答案2

如果“多个”不算太多,你可以

for i in *.txt ; do
    echo "$i" >>newfile
    cat "$i" >>newfile
done

相关内容