您好,我试图将多个文件(每个文件都有一列,但行数不同)粘贴在一起。
paste file1.txt file2.txt paste3.txt ... paste100 > out.txt
输入文件1:
A
B
C
输入文件2:
D
E
输入文件3:
F
G
H
I
J
输出:
A D F
B E G
C H
I
J
当我从 out.txt 文件中剪切第 2 列(cut -f2)时,它为第 2 列提供了 3 个空行(可能是因为该列有 5 行,因此为了与第 3 列匹配,它创建了 2 个额外的空行)。第 1 列(减去 out.txt | cut -f1)也是如此,它给出了 2 个空行。知道为什么它显示空行吗?
少出.txt |剪切-f1
A
B
C
empty cell
empty cell
少出.txt |剪切-f2
D
E
empty cell
empty cell
empty cell
我期待看到-
第 1 列
A
B
C
第 2 列
D
E
最佳答案
没有一行是空的,其中一些行只是没有填充所有字段,但它们仍然具有粘贴输出的字段分隔符(制表符)。 cut
无法知道您不希望打印空字段。
尝试:
awk -v f=1 -F'\t' '$f!=""{print $f}' file
awk -v f=2 -F'\t' '$f!=""{print $f}' file
相反。
关于awk - 粘贴命令留下空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26964717/