How can I write in nth column of a file in awk?

后端 未结 4 1955
醉梦人生
醉梦人生 2021-01-16 11:02

For example:

abc
xyz
123
546

input.txt:

asdad
asdad
adghf
dfytr

I wanted to add the above column in 2nd c

相关标签:
4条回答
  • 2021-01-16 11:15

    You can use just bash

    exec 4<file2
    while read -r line1
    do
     read -r line2 <&4
     echo $line $line2
     done < file1
    exec 4>&-
    
    0 讨论(0)
  • 2021-01-16 11:37

    The command you're looking for is paste rather than awk. You could do it in awk but you'll probably find that paste is easier:

    pax> cat qq1
    asdad
    asdad
    adghf
    dfytr
    
    pax> cat qq2
    abc
    xyz
    123
    546
    
    pax> paste qq1 qq2
    asdad   abc
    asdad   xyz
    adghf   123
    dfytr   546
    

    Use paste -d' ' qq1 qq2 if you want a space rather than a tab for the delimiter.

    0 讨论(0)
  • 2021-01-16 11:38

    In awk:

    awk 'NR==FNR {x[NR] = $0} NR != FNR {print x[FNR], $0}' col1_file col2_file
    

    Though its probably better to use paste

    0 讨论(0)
  • 2021-01-16 11:41

    paste is the easiest solution. Here's an awk example that doesn't have to store the entire first file in memory:

    awk '{getline second < "example"; printf("%s\t%s\n",$0,second)}' input.txt
    
    0 讨论(0)
提交回复
热议问题