在 bash 上编写扩展名的 strip 文件的一种优雅方法?

在 bash 上编写扩展名的 strip 文件的一种优雅方法?

这是我的 bash 脚本:

for next in `ls | grep -P -o "[a-zA-Z0-9]*" | grep -v "^c$" | grep -v "^obj$" | grep -v "^sh$"`
do
  mv "$next.c.obj" $next
done

如您所见,它很丑陋。它基本上从文件中删除了 .c.obj 扩展名(顺便说一句,这是因为我弄乱了之前的脚本)。它确实有效,但看起来并不是最有效的解决方案。

该操作已经完成,因此请不要发布其他操作方式(重命名或 sed 或 awk)。

我只是想知道是否可以仅使用 grep 和 bash 来完成此操作,但方式更优雅。

相关内容