我嘗試了幾個命令並閱讀了一些教程,但沒有任何幫助。我正在使用gnu sed 4.2.2。 我只是想在一個文件中搜索:如何使用sed搜索文件的內容
func1(int a)
{
我不知道這是否是一個換行符,隨後的事實「{」,但它只是不工作。 一個正確的命令將有助於解釋更多。謝謝!
注意:在「int a」之後「我輸入」,但我認爲stackoverflow沒有放置換行符。我不想混淆,我只想搜索func1(int a)'newline'{。
我嘗試了幾個命令並閱讀了一些教程,但沒有任何幫助。我正在使用gnu sed 4.2.2。 我只是想在一個文件中搜索:如何使用sed搜索文件的內容
func1(int a)
{
我不知道這是否是一個換行符,隨後的事實「{」,但它只是不工作。 一個正確的命令將有助於解釋更多。謝謝!
注意:在「int a」之後「我輸入」,但我認爲stackoverflow沒有放置換行符。我不想混淆,我只想搜索func1(int a)'newline'{。
sed -n '/func1/{N;/func1(int a)\n{/p}'
說明:
sed -n '/func1/{ # look for a line with "func1"
N # append the next line
/func1(int a)\n{/p # try to match the whole pattern "func1(int a)\n{"
# and print if matched
}'
使用grep這將是例如:
grep -Pzo 'func1\(int a\)\n{'
但是請注意,由於-z
輸入到grep
將是一個大的 「線」也包括換行符(即除非輸入包含空字符)。括號在這種情況下必須被轉義,因爲它是一個Perl正則表達式(-P
)。 -o
使grep只打印匹配的模式。
+1,並使其一般匹配:sed -n'/ func1/{N;/func1([^)] *)\ s * \ n \ s * {/ p}'文件 – BMW
你只是想找到字符串,或將其替換?如果只是找到,我建議看看http://en.wikipedia.org/wiki/Grep。 – Martin
嗨馬丁,的確我只是想找到。但是我看不出grep如何幫助換行,然後是「{」。如果你能舉一個命令行的例子,我會很享受,因爲我真的無法弄清楚。 – user3241815
試試這裏:http://stackoverflow.com/questions/3717772/regex-grep-for-multi-line-search-needed – Martin