2009-12-31 74 views
2

bash腳本如何從bash中的字符串中刪除一些文本?

我有一個字符串:

TCP 6 0 CLOSE SRC = 111.11.111.111 DST = 222.22.222.22運動= 45478 DPORT = 5000組的分組= 7個字節= 474 SRC = 111.11.111.111 DST = 222.22.222.22小號 端口= 5000 DPORT = 45478個分組= 8個字節= 550 [ASSURED]標記= 0使用= 1

我需要切割的src IP地址111.11.111.111, 如何?

回答

3

這裏有一個快速和骯髒的方式做到這一點: 管它通過戰略經濟對話是這樣的:

sed -e 's/.*src=\([^ ]*\).*/\1/' 
+0

感謝它的效果,regs對我來說太難了:) – bymaker 2009-12-31 06:38:30

2

你不需要爲這一個外部工具。如果你要在命令輸出的字符串,而且很有可能,你想

string="$(command)" 
string="${string#* src=}" 
string="${string%% dst=*}" 

第一行捕獲所有的輸出。第二行切斷以src=結尾的最短前綴。第三行剪切最後的後綴dst=

shell globbing比regexps更容易!

1

你可以使用awk。下面的代碼片段獲取所有src ip,而不僅僅是它的一個實例。

<command> | awk '{for(i=1;i<=NF;i++){if($i~/src/){sub("src=","",$i);print $i}}}' 
相關問題