Awk 我想从数千个文件中提取特定列,并以新文件新列格式打印特定列

Awk 我想从数千个文件中提取特定列,并以新文件新列格式打印特定列,awk,sed,gawk,Awk,Sed,Gawk,我想从数千个文件中提取特定列,并以新文件新列格式打印特定列 输入文件1: a e i b f j c g k d h l 输入文件2: l p t m q u n r v o s w 输入文件3: w 1 5 x 2 6 y 3 7 z 4 8 我想从我正在使用的每个文件中提取第二列 awk ' { print $2 } ' > test.txt 现在,每个提取的列都要按列打印在新文件中,这里我有

我想从数千个文件中提取特定列,并以新文件新列格式打印特定列

输入文件1:

a e i    
b f j    
c g k    
d h l
输入文件2:

l p t   
m q u    
n r v    
o s w    
输入文件3:

w 1 5    
x 2 6    
y 3 7    
z 4 8
我想从我正在使用的每个文件中提取第二列

awk ' { print $2 } ' > test.txt    
现在,每个提取的列都要按列打印在新文件中,这里我有一个查询

预期输出文件:

e p 1    
f q 2     
g r 3    
h s 4    

假设是当前目录中的所有文件:否则修改glob模式

files=(*)
awk '{print $2}' "${files[@]}" | pr -t -s" " -${#files[@]} > output.file
# ............................................^^^^^^^^^^^^
# ................this is the number of files in the array
演示


[root@test/tmp]$awk'{a[FNR]=a[FNR]?a[FNR]“$2:$2}END{for(i=1;iA非常类似的方法:
cut-”d“-f2*| pr-3t“s”>test.txt
亲爱的先生,谢谢您的回复,但它对我的文件不起作用。我使用的是windows base os。这一点很重要,您不认为吗?您需要GNU工具来回答这个问题。cygwin可以。
$ awk '{print $2}' file1 file2 file3 | pr -t -s" " -3
e p 1
f q 2
g r 3
h s 4
[root@test /tmp]$ awk '{a[FNR]=a[FNR]?a[FNR]" "$2:$2}END{for(i=1;i<=FNR;i++){print a[i]}}' a b c



e p 1
f q 2
g r 3
h s 4