使用awk / sed进行字符串操作并一起切割

时间:2013-07-23 14:34:32

标签: bash sed awk cut

我试图操纵以下字符串:

/var/www/vhosts/www.xxx.nl/HTML/wp-includes/version.php:$wp_version = '3.5';    
/var/www/vhosts/www.yyy.nl/HTML/wp-includes/version.php:$wp_version = '2.9';
/var/www/vhosts/www.zzz.nl/HTML/wp-includes/version.php:$wp_version = '3.2.1';

产生输出:

www.xxx.nl 3.5
www.yyy.nl 2.9
www.zzz.nl 3.2.1

通过剪切,我可以显示第1列:

cut -d '/' -f5

使用awk和sed我可以显示第2列:

awk '{print $3}' | sed -e 's/^.//' -e 's/..$//'

但是如何组合这些命令以显示预期的输出?

1 个答案:

答案 0 :(得分:4)

这可以做到:

$ awk -F"[/']" '{print $5, $9}' file
www.xxx.nl 3.5
www.yyy.nl 2.9
www.zzz.nl 3.2.1

我们对-F"[/']"的处理方法是定义两个可能的字段分隔符:/'。然后是检查所需字段的位置,恰好是第5和第9个。