linux - 如何在脚本中使用定界符来避免数字和特殊字符

标签 linux shell unix sh

是否有任何逻辑可以编写一个 shell 脚本返回到具有“n”个文件的先前目录,如 abc-1.0.1-xy.rpm、xyz-3.2.1-bc.rpm、a -bd-2.3.1-ty.rpm 等。具有相同的模式。

我需要它的名字在数字开始之前(可以作为分隔符)即(-(0-9))可以作为分隔符。输出应为 abc、xfz、a-bd 等。

for p in *.rpm; do echo "${p%-*}"; done

我尝试使用此命令,但它停止并输出为 xyz-3.2.1。但我只需要 xyz。

最佳答案

如果需要 rpm 的包名,请使用:

rpm -qp --queryformat '%{NAME}\n' *.rpm  2>/dev/null

关于linux - 如何在脚本中使用定界符来避免数字和特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513641/

相关文章:

c - 输入目录作为c中的命令行参数

linux - Unix - 将所有行组合成逗号分隔的单行

linux - 传输文件!!!从unix服务器到linux服务器

windows - 如何在GO中实现跨平台文件锁定

c - 在 yyparse() 调用时执行操作?

c# - 如何在 Linux 命令行上通过 Mono 构建 C# 文件?

php - 有什么缺点,上传文件一定要注意

regex - 将包含子字符串 'foo' 的文件重命名为 'bar'

python - 安排自动化 shell 脚本不以 ROOT 身​​份运行

bash - 脚本退出后执行后台进程