我试图操纵以下字符串:
/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/..$//'
但是如何组合这些命令以显示预期的输出?
答案 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个。