2021年1月6日星期三

How to use paste to append one column from file2 to file1

Similar to

Append one column from fileB onto end of FileA and bash cut columns to one file and save onto the end of another file

However, in this case, I want the result to print to a file (file1.txt), not standard output (stdout).

Background // I have two tab-delimited files (both with 3 columns):

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

Desired output // I want to merge/append the second column of file2.txt to file1.txt (final file has 4 columns):

>file1.txt  4481679 4481722 .       -  4481791 4481820 .       +  4481947 4482268 .       -  

Errors // So far, I have tried the following (which all look correct--like the above), but each simply prints to stdout:

    Attempt1:  $ paste file1.txt <(cut -f2 file2.txt)      Attempt2:  $ cut -f2 file2.txt | paste file1.txt -      Attempt3:  $ paste file1.txt <(awk '{print $2}' file2.txt)  

Also, the following prints "paste: write error: No space left on device paste: write error":

    Attempt4:  $ paste file1.txt <(cut -f2 file2.txt) >> file1.txt      Attempt5:  $ cut -f2 file2.txt | paste file1.txt - > file3.txt  

Any ideas how I can get this to work without using sponge from moreutils (i.e., using only things like paste, cut, awk, sed)?

https://stackoverflow.com/questions/65605679/how-to-use-paste-to-append-one-column-from-file2-to-file1 January 07, 2021 at 09:58AM

没有评论:

发表评论