是否可以编写一个脚本来重命名扩展名之后的所有文件?
文件夹中的示例为:
hello.txt-123ahr
bye.txt-56athe
test.txt-98hg12
我想要输出:
hello.txt
bye.txt
test.txt
答案 0 :(得分:3)
如果只想从短划线中删除所有内容,则可以使用参数扩展:
#!/bin/bash
for file in *.txt-* ; do
mv "$file" "${file%-*}"
done
${file%-*}
的意思是“从最后一个破折号开始,从$file
删除”。如果要从第一个破折号开始,请使用%%
。
请注意,如果某些文件的前导部分相同,则可能会覆盖它们,例如hello.txt-123abc
和hello.txt-456xyz
。