如何在grep中給出新行的模式? 開始新行,結束新行。不是正則表達式的方式。像\ n。如何在grep中爲新行添加模式?
回答
grep
模式匹配個別行,所以模式無法匹配輸入中找到的換行符。
但是你可以找到空行是這樣的:
grep '^$' file
grep '^[[:space:]]*$' file # include white spaces
至少GNU grep有-z選項,它使grep斷行由空字符組成。但是,它似乎不支持換行符或換行符匹配換行符,請參閱[bug報告](https://bugs.launchpad.net/ubuntu/+source/grep/+bug/1641092)。 – jarno
@jarno它支持\ n模式中的-P標誌 – rubystallion
您可以用這種方式...
grep -P '^\s$' file
-P
用於Perl的正則表達式(擴展到POSIXgrep
)。\s
匹配空白字符;如果跟着*
,它也匹配一個空行。^
匹配行的開頭。$
匹配該行的結尾。
嘗試pcregrep
代替普通grep
:
pcregrep -M "pattern1.*\n.*pattern2" filename
的-M
選項允許它在多個線路匹配,這樣你就可以搜索換行符\n
。
正是我在找,謝謝! – yorch
至於解決方法(不使用非便攜-P
),您可以臨時使用不同的字符替換新線,改變回來,如:
grep -o "_foo_" <(paste -sd_ file) | tr -d '_'
凡在尋找精確匹配_foo_
其中_
手段\n
(所以__
= \n\n
)。您無需將其翻譯回tr '_' '\n'
,因爲每個圖案都會以新行打印,因此刪除_
就足夠了。
感謝@jarno我知道-z選項,我發現當使用GNU grep和-P選項時,與\n
匹配是可能的。 :)
例子:
grep -zoP 'foo\n\K.*'<<<$'foo\nbar'
打印bar
- 1. 如何在樣式中添加行爲
- 2. 在模式之前添加新行
- 3. 如何在PFQueryTableView編輯模式下添加新插入行?
- 4. 如何找到多行模式並使用sed添加新行
- 5. 如何動態地添加新行,並添加獨特的NG-模式,每行
- 6. 動態添加一個新行作爲添加在編輯模式下的UITableView?
- 7. 如何在模式中添加Fancybox
- 8. 如何在android ADT eclipse插件中添加新模式
- 9. ContentTools - 如何在表中添加新行?
- 10. 如何在腳本中添加新行
- 11. 如何在文件中添加新行
- 12. 如何在Gtk textview中添加新行?
- 13. 如何在plist中添加新行
- 14. 如何在QTableWidgetItem中添加新行
- 15. 如何在括號內grep模式?
- 16. GREP「--prefix」作爲模式
- 17. 如何在smarty模板中循環四次後添加新行
- 18. 如何在符合給定模式的行之前添加新行?
- 19. 爲Clojure模式在TAB中添加新功能
- 20. 如何在Spring表達式語言中添加「新行」?
- 21. 如何在JSP的表達式語言中添加「新行」?
- 22. 如何在CodeMirror中以編程方式添加新行?
- 23. 如何在android中添加html格式的新行?
- 24. 如何添加行爲dropDownChoice形式
- 25. 如何在AWS CloudWatch中爲AWS SQS添加均勻模式
- 26. BASH grep模式文件名在行尾
- 27. 如何在Expression Blend中添加行爲
- 28. 如何在grep獲得的每行末尾添加一個值
- 29. 如何使用Perl在每個grep結果後添加空行?
- 30. 爲pypy添加新模塊
目前尚不清楚你想要什麼。 '開頭的新行'是一個空行,'end end'換行適用於文件中的每一行。你能舉一個例子嗎? –
其實你可以使用'$'。這是有限的,但在簡單的情況下可用。 –
https://www.gnu.org/software/grep/manual/grep.html#Usage見條目15. – jarno