首页 > 解决方案 > 使用基本的 ubuntu shell 命令将单行文本合并到数据框中

问题描述

我有两个文件Input1.txtInput2.txt. 它们中的每一个都是一个文本文件,其中包含由制表符分隔的 5 个数字的单行。

例如Input1.txt

1 2 3 4 5

并且Input2.txt

6 7 8 9 10

我想要的输出是Output.txt

Input1 1 2 3 4 5
Input2 6 7 8 9 10

所以我想将表中的文件与包含原始文件名称的额外第一列合并。显然我有超过 2 个文件(实际上是 1000 个),我想用一个 for 循环来制作它。您可以假设我的所有文件都命名为 Input*.txt,其中 * 介于 1 和 1000 之间,并且它们都在同一个目录中。

我知道如何用 R 来做,但我想用 ubuntu shell 中的基本命令行来做。可行吗?谢谢你的帮助。

标签: linuxubuntutext

解决方案


假设Input1.txt,Input2.txt等中的行以换行符终止,您可以使用

for i in Input*.txt
do
    printf "%s " "$i"
    cat "$i"
done > Output.txt

结果是

Input1.txt 1 2 3 4 5
Input2.txt 6 7 8 9 10

如果你想在Input1没有你的情况下得到等,.txt你可以使用

    printf "%s " "${i%.txt}"

推荐阅读