2012-10-03 140 views
5
grep -A 26 "some text" somefile.txt | 
    awk '/other text/ { gsub(/M/, " "); print $4 }' | 
    sort -n -r | uniq | head -1 

將返回從大型文本文件中拉出的列表中的最大值,但是如何將輸出存儲爲變量?bash存儲輸出作爲變量

回答

7

使用command substitution

my_var=$(grep -A 26 "some text" somefile.txt | 
    awk '/other text/ { gsub(/M/, " "); print $4 }' | 
    sort -n -r | uniq | head -n1) 

此外,對於便攜性,我總是會用-n1head參數建議。我遇到了幾個使用-1不起作用的化身。

0

我建議

variable_name=$(grep -A 26 "some text" somefile.txt | 
    awk '/other text/ { gsub(/M/, " "); print $4 }' | 
    sort -nru | head -1) 
1

對於嵌套的情況下,反引號將工作太:

variable=`grep -A 26 "some text" somefile.txt | 
awk '/other text/ { gsub(/M/, " "); print $4 }' | 
sort -nru | head -1`