我使用bash腳本。我有線通過正則表達式bash腳本獲取字符串
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
我想從這行中得到「22,80」。任何一個人都可以幫我嗎?
我使用bash腳本。我有線通過正則表達式bash腳本獲取字符串
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
我想從這行中得到「22,80」。任何一個人都可以幫我嗎?
20前的分隔符,80 :
,可以主要與cut
做到這一點:
$ cut -d: -f2 file
22
80
隨着bash
:
$ while read line
do
echo ${line#*:}
done < file
22
80
即使awk
:
$ awk -F: '{print $2}' file
22
80
並完成它,與sed
:
$ sed 's/.*://' file
22
80
'perl -F:-lane'print $ F [1]'file' ... +1;) –
Jaypal和他的新面貌拯救:)感謝提高我的答案! – fedorqui
awk 'BEGIN{FS=":"} {print $2}' file
你可以在這裏查看http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_04_02.html#sect_04_02_02或者你可以用Perl,蟒蛇等,輕鬆完成 – Netro