我使用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