【发布时间】:2020-04-11 03:16:36
【问题描述】:
如何通过从文件名中删除“1”来仅重命名唯一文件并保留重复的名称文件?
输入:
-english_1.pdf
-english_2.pdf
-english_3.pdf
-mathematics_1.pdf
-theology_1.pdf
-economics_1.pdf
-economics_2.pdf
如何使用awk、sed 或类似名称从 math_1.pdf 和 theology_1.pdf 中删除 1?
期望的输出:
-english_1.pdf
-english_2.pdf
-english_3.pdf
-mathematics.pdf
-theology.pdf
-economics_1.pdf
-economics_2.pdf
我试过了:
rename -n 's/1//' *.pdf
但它会删除 所有 1
【问题讨论】:
-
操作(创建/销毁/移动)文件和进程的工具是shell,而不是awk。为什么要涉及awk? edit 您的问题是用您使用的任何外壳(或非 UNIX 环境)标记它,以便我们为您提供帮助。包括具有
1s 的文件名,如果存在,您不想删除并显示预期的输出(不清楚您是否也希望删除_s,实际上我什至不确定您提供的内容是否是样本输入或预期输出!)。 -
它似乎比 sed 和重命名更通用,我不知道
-
当然是,但它是一种用于操作文本的工具,而不是操作文件(或进程)——这就是 shell 的用途。您极不可能需要像 sed 或 awk 这样的外部工具来为这样的工作生成文件名。有关如何获得帮助,请参阅我的第一条评论。
-
@KamilCuk 失败!重命名 V 是第一个