2011-12-16 23 views

回答

1

好了,我們有一些文字

$> cat ./text 
text 
some text 
string1 
some text again 
and that 
string2 
done 
this should not be printed 

我們希望能夠得到字符串1字符串2之間的界線。所以awk是可能在那裏使用的最好的工具。

$> cat ./btw 
/string1/ { printing = 1 } 
/string2/ { print $0; printing = 0 } 
printing { print $0 } 

用法:

$> awk -f ./btw ./text 
string1 
some text again 
and that 
string2 
1

使用sed(爲了清晰起見,分成兩行)。

echo "grep is a command-line text-search utility originally written for Unix." \ 
| sed -n 's/.*\(utility originally written\).*/\1/p' 

這裏做的事情:

  • -n參數禁止所有行的打印。
  • s命令在開始處開始替換表達式。
  • 第一個/與第二個/之間的部分描述了您想要查找的內容。
    • .*的意思是「什麼」
    • \(utility originally written\)是你在找什麼,在之間的兩個轉義的括號,說這是一個表達我們以後可以向後引用。
    • .*再次表示「任何」
  • 第二/和第三/之間的部分是替換表達式。
    • \1說「使用括號中的第一個表達式從所述第一部分」
  • 最終p說「打印出匹配的取代。」

編輯:作爲參考,原始問題(出於某種原因,它不顯示任何編輯)低於。對於我的生活,我不知道他爲什麼變得更糟和更具體。

如何使用grep來找到行文字行

可以說,我想給grep只有「實用最初寫」從 下面的文字。我怎樣才能做到這一點?請幫忙

grep是最初爲 Unix編寫的命令行文本搜索工具。

+0

我需要命令可以從實用程序中搜索到書面 – user1047737 2011-12-16 18:16:01

+0

您不應該對與您的問題一樣含糊的問題回答投票。閱讀關於如何提問的FAQ。 – 2011-12-16 18:18:18

0

您可以使用-o optiongrep實用程序。像這樣的東西 -

-o, --only-matching 
       Show only the part of a matching line that matches PATTERN. 

[jaypal:~] echo "grep is a command-line text-search utility originally written\ 
for Unix."| grep -o "utility originally written" 
utility originally written 
[jaypal:~]