在UNIX中使每两行成为一个单独的列
你好,我有这个文件.txt a=a b=b c=c d=d e=e f=f 。 等 (约150排) 我需要输出为: a b c d e f a b c d e f 我已经尝试过使用在UNIX中使每两行成为一个单独的列,unix,Unix,你好,我有这个文件.txt a=a b=b c=c d=d e=e f=f 。 等 (约150排) 我需要输出为: a b c d e f a b c d e f 我已经尝试过使用paste-d”“-
paste-d”“-
,但是我需要一些东西来处理大量的行到列
提前感谢。您可以使用内部字段分隔符分隔文件:
while IFS== read -r left right; do echo $left; done < "test.txt" | xargs
而IFS==read-r left-right;不要离开;完成<“test.txt”| xargs
这给了你左边。对于右侧,您可以这样做
while IFS== read -r left right; do echo $right; done < "test.txt" | xargs
而IFS==read-r left-right;做正确的事;完成<“test.txt”| xargs
如果您所说的只有150行,则应扫描文件两次。您可以使用内部字段分隔符分隔文件:
while IFS== read -r left right; do echo $left; done < "test.txt" | xargs
而IFS==read-r left-right;不要离开;完成<“test.txt”| xargs
这给了你左边。对于右侧,您可以这样做
while IFS== read -r left right; do echo $right; done < "test.txt" | xargs
而IFS==read-r left-right;做正确的事;完成<“test.txt”| xargs
如果您所说的只有150行,那么应该可以扫描文件两次。尝试以下方法:
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
输出:
试试这个:
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
输出:
echo
、cut
和tr
$ 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
echo
、cut
和tr
$ 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
输入字段分隔符稍有修改的可能重复或输入字段分隔符稍有修改的可能重复