[英]regular expression with grep not working?
我在Windows 7上運行cygwin,grep 2.21。
我試圖從netstat獲取所有tcp連接,所以我運行以下命令:
netstat | grep -i "^(TCP|UDP)"
現在,它什么也不返回,但是當我運行netstat
它顯然返回了許多tcp連接。 我也嘗試過:
netstat | egrep -i "^(TCP|UDP)"
也不會返回任何內容。 我在這里想念什么? 我認為插入符號的意思是“開頭”。 謝謝。
netstat使用小寫字符輸出協議。 請嘗試以下任一方法:
netstat | grep '^\(udp\|tcp\)'
要么
netstat | egrep '^(udp|tcp)'
兩者之間的區別在於egrep支持擴展的正則表達式語法,其中(
, )
和|
不應該逃脫。 正如Reuel Ramos Ribeiro指出的那樣, egrep
等效於使用grep -e
因此可以使用netstat | grep -e '^(udp|tcp)'
netstat | grep -e '^(udp|tcp)'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.