通过正则表达式bash脚本获取字符串

时间:2013-06-26 11:34:28

标签: 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”。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

由于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

答案 1 :(得分:0)

awk 'BEGIN{FS=":"} {print $2}' file