从文件名中删除数字

时间:2015-06-12 13:30:55

标签: shell unix

我有一堆类型的文件名:

a-1.txt
a-2.txt
a-3.txt

等等。我希望他们成为:

attribute_id

这一切都在unix中。我一直在尝试"重命名"但我无法使用正则表达式。 (我读过有两个版本,我可能有另一个版本)。

2 个答案:

答案 0 :(得分:3)

假设您知道如何创建循环来迭代所有文件名(或者您将手动执行此操作),并且对于每个文件,其名称都存储在FILE中:

mv $FILE ${FILE%%.*}.txt

${parameter%%pattern}成语为standard shell syntax,用于删除与模式匹配的最长后缀。

答案 1 :(得分:1)

for i in $(ls) ; do   mv $i $(echo $i | awk -F '.' '{print $1"."$3}'); done

用于测试将mv更改为echo

PS:我的代码来自我的头脑,但应该有效。 =)