2015-09-10 52 views
0

我想從數千個文件中提取特定的列,並且希望在新文件中打印新的特定列列格式我想從數以千計的文件中提取特定列,並且希望以新文件打印新的特定列新的列格式

輸入文件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  

輸入file3的:

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  

回答

2

假設它在當前目錄下的所有文件:以其他方式修訂glob模式。

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

演示

$ awk '{print $2}' file1 file2 file3 | pr -t -s" " -3 
e p 1 
f q 2 
g r 3 
h s 4 
+0

一個非常類似的方法:'切 - 「d」 -f2 * | pr-3t「s」> test.txt' – Cyrus

+0

尊敬的先生們,感謝您的回覆,但它不適用於我的文件。我正在使用Windows基本操作系統。 – Piyush

+4

事先說出來很重要,你不覺得嗎?你需要GNU工具來解決這個問題。 cygwin會做。 –

0
[[email protected] /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 
相關問題