2010-10-22 70 views
0

我試圖提取的grep commad工作不正常

在FILE.TXT值:

116206K-> 13056K(118080K),0.0879950 秒] [終身:274796K-> 68056K(274892K) 0.2713740秒] 377579K-> 68056K(392972K),[彼爾姆 :17698K-> 17604K(17920K)],0.3604630 秒]

我嘗試提取

cat File.txt | grep 'Perm '| cut -d',' -f3|cut -d'(' -f2 |cut -d')' -f 1 

這裏有什麼問題。因爲我想我得到了

392972K這是從377579K-> 68056K(392972K)

但我應該從[燙髮:17698K-> 17604K(17920K)得到

+0

一句話:'貓文件| grep'是一個**無用的使用cat **(* UUOC *)。使用'grep'Perm'文件'代替,它會減少一個進程。 – Benoit 2010-10-22 11:41:52

+0

這只是爲了測試..我有不同的理由,爲什麼我這樣做。 – Tree 2010-10-22 11:51:33

回答

3

一個速戰速決,改變-f3-f4,因爲你需要後場出現第三逗號:

cat File.txt | grep 'Perm '| cut -d',' -f4|cut -d'(' -f2 |cut -d')' -f 1 
             ^^ 

您還可以使用sed爲:

grep 'Perm' File.txt | sed -r 's/.*Perm :.*\((.*?)\).*/\1/' 

Working link

0
$ awk -vFS="->" '{gsub(/)].*|.*\(/,"",$5);print $5}' file1 
17920K