2011-11-28 68 views
0

我有一個valgrind運行輸出的文件。我需要打印valgrind每行顯示的數字(緊跟在「==」之後)。如何使用bash從Valgrind的輸出中提取進程ID?

但我只需要在一行內完成而不使用「;」。

我試過使用head -1,它給了我第一行,我知道我在找什麼,然後我在考慮使用cut -d= -f3,我知道,在文件上使用它時會給我我想要什麼,但它會輸出幾次,我想要一次。

我該如何合併它們。還是不是這樣做的方式?

樣品的valgrind輸出:

==29192== Memcheck, a memory error detector. 
==29192== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. 
==29192== Using LibVEX rev 1575, a library for dynamic binary translation. 
==29192== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. 
==29192== Using valgrind-3.1.1, a dynamic binary instrumentati 

和我希望它僅29192打印在上面的例子。

+0

請更新您的問題,以包括樣品valgrind輸出和你最終想要它看起來像什麼。祝你好運。 – shellter

回答

2

您可以用管結合head -1cut -d= -f3head -1 file | cut -d= -f3

+0

謝謝,它的作品! – boaz

2

這個怎麼樣?

sed -e 's/==\(.*\)==.*/\1/' 

您可能想要通過| uniq

0

AWK解決方案:

awk -F"==" '{ print $2 }' INPUT_FILE | uniq 
  • 設置字段分隔符==
  • 打印列#2
  • 管道它到uniq獲得不同的值。
相關問題