linux so文件统一目录,linux - 单行列出目录中文件的旧版本 - SO中文参考 - www.soinside.com...

我正在尝试制定一种Linux单一代码,以仅列出与目录中文件的早期版本重复的文件。例如:]]filenames:

foo-bar-foo-1.3.42.jar

foo-bar-foo-1.2.21.jar

foo-2.3-foo-bar-3.1.2.jar

foo-2.3-foo-bar-3.2.4.jar

bar-foo-1.24.jar

bar-foo-2.0.jar

foobar-foobar-3.4.1.jar

barfoo-barfoo-1.2.1.jar

expected output:

foo-bar-foo-1.2.21.jar

foo-2.3-bar-3.1.2.jar

bar-foo-1.24.jar

ls -vr *.jar | awk -F-[0-9]+.[0-9]+.[0-9]+ '$1 == name{system ("ls \""$0"\"")}{name=$1}'

但是它错过了版本中只有两个数字的那些。

并且使用它捕获诸如foo-2.3-foo-bar-3.1.2.jar这样的文件:

ls -vr *.jar | awk -F-[0-9]+.[0-9]+ '$1 == name{system ("ls \""$0"\"")}{name=$1}'

我还可以使用gsub来获取一个变量,该变量包含除版本号以外的所有内容,但是我无法弄清楚如何使用它最终获得预期的结果。

ls -vr *.jar | awk -F- '{gsub("-"$NF,"",$x)}{print $x}'

如果有更好的解决方案,我很乐意不使用awk(我对此并不十分熟悉)。我也在用sed进行bash的RHEL开发。但是,它必须是单线的,可以直接在命令行上使用。

我正在尝试制定一种Linux单一代码,以仅列出与目录中文件的早期版本重复的文件。例如:文件名:foo-bar-foo-1.3.42.jar foo-bar-foo-1.2.21.jar foo-2.3-foo -...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值