2014-09-28 78 views
0

我有三個文本文件,我想複製/剪切每個文件的第3和第4列,然後將它們(彼此相鄰)插入到一個新的文本文件中。從多個文本文件剪切列到新文件

這裏是文本文件之一的內容:

03Z 23:00 69.7F 20.9C 
04Z 00:00 70.1F 21.2C 
05Z 01:00 69.7F 20.9C 
06Z 02:00 69.1F 20.6C 
07Z 03:00 68.5F 20.3C 
08Z 04:00 67.0F 19.4C 
09Z 05:00 65.4F 18.6C 
10Z 06:00 64.5F 18.1C 
11Z 07:00 63.8F 17.7C 
12Z 08:00 64.9F 18.3C 
13Z 09:00 68.6F 20.3C 
14Z 10:00 72.7F 22.6C 
15Z 11:00 75.6F 24.2C 
16Z 12:00 78.3F 25.7C 
17Z 13:00 79.4F 26.4C 
18Z 14:00 79.9F 26.6C 

我猜sedawk將是實現這一目標的好方法?

回答

1

這將收集所有的第3和第4列拼接在一起:

awk '{print $3,$4}' file1 file2 file3 

如果你想在第三和第二檔和第三檔的第4列,成爲輸出的第3,第6列,那麼你需要的東西在bash票友一點:每個文件單獨

paste <(awk 'BEGIN {OFS="\t"} {print $3,$4}' file1) \ 
    <(awk 'BEGIN {OFS="\t"} {print $3,$4}' file2) \ 
    <(awk 'BEGIN {OFS="\t"} {print $3,$4}' file3) 

或者,你可以處理,然後paste在一起底。

for f in file1 file2 file3 
do 
    awk 'BEGIN {OFS="\t"} {print $3,$4}' $f > $f.tmp 
done 
paste file1.tmp file2.tmp file3.tmp 
+0

好極了!謝謝。 – 2014-09-28 06:00:16

0

您可以使用切是在這種情況下更合適:

cut -d" " -f3,4 file1 file2 file3 > result.txt 

注:如果列由製表符分隔,您可以刪除-d" "因爲標籤是切斷默認的分隔符。

注2:如果文件名是真的numeroted可以使用[1-3][a-c]等:

cut -d" " -f3,4 file[1-3] > result.txt