2016-10-04 74 views
-1

的動態值我有一個輸出文件的內容:shell腳本得到場

S0  S1  E  O  P  YGC  YGCT FGC FGCT  GCT LGCC     GCC 
29.43 0.00 12.19 37.06 59.67 23968 42.189 375851 1785.339 1827.528 CMS Final Remark  No GC 

我需要提取只有最後兩個fields..LGCC和GCC。 但是這些值是動態生成的。所以不能通過分隔空間來提取它們。我怎樣才能得到這兩個值?什麼是價值觀?

輸出應該是:

LGCC     GCC 
CMS Final Remark  No GC 

請建議

+0

基於提供的輸入,您的確切預期輸出是什麼? –

+0

[Bash - 在文本文件中取第n列]可能的重複(http://stackoverflow.com/questions/17137269/bash-take-nth-column-in-a-text-file) –

回答

0

也許這可以幫助你

awk '{for(i=11;i<=NF;i++){printf "%s ", $i}; printf "\n"}' yourFile 

例子;

[email protected]:/tmp$ awk '{for(i=11;i<=NF;i++){printf "%s ", $i}; printf "\n"}' t1 
LGCC GCC 
CMS Final Remark No GC 
0

這是參考關於標題行的列數。休息一下,它會從最後兩列中除去前幾列。 sed用於刪除前導,而刪除少數列導致的空間。

awk 'NR==1{x=NF-1;} NR!=1{for(i=1;i<(x);i++) $i="" } NR!=1{print $0}' infile|sed "s/^[ \t]*//" 
CMS Final Remark No GC