【发布时间】:2016-04-02 06:46:56
【问题描述】:
我有一个包含文件的目录,其中一些文件以下划线结尾。
我想测试每个文件,看看它是否以下划线结尾,然后去掉下划线。
我目前正在运行以下代码:
for file in *;do
echo $file;
if [[ "${file:$length:1}" == "_" ]];then
mv $file $(echo $file | sed "s/.$//g");
fi
done
但它似乎没有用下划线重命名文件。例如,如果我有一个名为 all_indoors_ 的文件,我希望它能给我 all_indoors。
【问题讨论】:
-
你只是想删除下划线,没有别的吗?另外,
$length是在哪里定义的? -
strip off 是什么意思?去掉下划线,还是去掉下划线和剩下的文字?
-
@fedorqui 也不确定,认为我弄错了 :-)
-
脱掉。我的意思是删除示例中所述的下划线。 all_indoors_ 应重命名为 all_indoors
-
@kartoza-geek:是的,但是说文件是
foo_bar,应该重命名为foobar,还是foo?