cat pkg.temp
ca-certificates-2017.2.14-65.0.1.el6_9.noarch
glusterfs-3.7.9-12.el6.x86_64
glusterfs-api-3.7.9-12.el6.x86_64
glusterfs-api-devel-3.7.9-12.el6.x86_64
glusterfs-client-xlators-3.7.9-12.el6.x86_64
这是一个文件,我希望输出如下:
PkgName Version
ca-certificates 2017.2.14-65.0.1.el6_9.noarch
glusterfs 3.7.9-12.el6.x86_64
glusterfs-api-devel 3.7.9-12.el6.x86_64
glusterfs-client-xlators 3.7.9-12.el6.x86_64
这样,我最后就会得到不需要的连字符:
$ awk -F'[[:digit:]]' '{ print $1}'
ca-certificates-
glusterfs-
glusterfs-api-
glusterfs-api-devel-
glusterfs-client-xlators-
打印 $2 时也不会显示我的版本
awk -F'[[:digit:]]' '{ print $2}' /tmp/Version-pkgs
.
.
.
.
.
.
答案1
如果您确信分隔符组合是“-”后跟一个数字,则可以使用 sed 将破折号替换为空格。您可以通过 awk 将其管道化以进行一些格式化打印。如下所示:
sed -e 's/-\([0-9]\)/ \1/' _file_ | awk 'BEGIN {printf("%-30s %s\n", "PkgName", "Version")} {printf("%-30s %s\n", $1, $2)}'
希望这可以帮助。