在UNIX中将每两行设为一个单独的列

时间:2016-10-05 15:01:28

标签: unix

您好我有这个文件.txt

  

A = A

     

B =

     

C = C

     

d = d

     

E =Ë

     

F =˚F

。 等等 (约150行)

我需要输出:

  

a b c d e f ....

     

a b c d e f ....

我已经尝试过使用paste -d " " - - < file.txt,但我需要处理大量行到列的内容。

提前谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用内部字段分隔符分隔文件:

while IFS== read -r left right; do echo $left; done < "test.txt" | xargs

这给你左侧。对于右侧,你可以做

while IFS== read -r left right; do echo $right; done < "test.txt" | xargs

如果您只谈论150行,则应该扫描文件两次。

答案 1 :(得分:1)

试试这个:

awk -F= '{
    arr1[NR]=$1
    arr2[NR]=$2
}
END{
    for (i in arr1) {
        printf("%s ", arr1[i])
    }
    print""
    for (i in arr2) {
        printf("%s ", arr2[i])
    }
    print ""
}' file

输出:

a b c d e f 
a b c d e f

答案 2 :(得分:1)

echocuttr

的混搭
$ cat ip.txt 
a=1
b=2
c=3
d=4

$ echo $(cut -d= -f1 ip.txt | tr '\n' ' ') ; echo $(cut -d= -f2 ip.txt | tr '\n' ' ')
a b c d
1 2 3 4