如何使用paste命令将file2中的一列添加到file1中。

12 浏览
0 Comments

如何使用paste命令将file2中的一列添加到file1中。

将fileB的一列追加到fileA的末尾bash将一列剪切到一个文件并保存到另一个文件的末尾类似,然而,前面问题的答案中提供的方法似乎在我的机器上对我的文件无效。请查看下面的paste错误。

背景 // 我有两个制表符分隔的文件(都有3列):

$ cat file1.txt
4481679 4481722 .
4481791 4481820 .
4481947 4482268 .
$ cat file2.txt
13368   -       366
13668   +       940
14016   -       270

期望的输出 // 我想将file2.txt的第二列合并/追加到file1.txt中(输出文件有4列):

$ cat file1.txt
4481679 4481722 .       -
4481791 4481820 .       +
4481947 4482268 .       -

尝试 //

   # 尝试1:
$ paste file1.txt <(cut -f2 file2.txt) >> file1.txt
   # 尝试2:
$ cut -f2 file2.txt | paste file1.txt - >> file1.txt
   # 尝试3:
$ paste file1.txt <(awk '{print $2}' file2.txt) >> file1.txt

尝试上述任何一个命令后,会返回以下错误:

paste: write error: No space left on device
paste: write error

有没有办法在不使用moreutils中的sponge(即仅使用pastecutawksed等)的情况下使其正常工作?

0
0 Comments

问题出现的原因是由于磁盘空间已满,导致无法正常运行paste命令。解决方法是删除一些不必要的文件以释放空间。

使用cut和paste命令可以实现将file2文件的一列附加到file1文件的功能。具体命令如下:

paste file1.txt <(cut -f2 file2.txt) > out_file.txt

0