我想将100个.txt文件更改为.log文件。我有以下过程,但它无法正常工作。
ls |grep *.txt |while read a ;
do b = 'echo $a |cut d"." -$f1';
c=$b ;
mv $a $c;
done
先谢谢!!
答案 0 :(得分:4)
for i in *.txt; do mv $i $(basename -s '.txt' $i).log; done
或者,如果您的系统具有rename
命令,则更简单:
rename 's/\.txt$/.log/' *.txt
答案 1 :(得分:0)
for i in *.txt
do
mv $i ${i%.*}.log
done
$ {var%“pattern”}从开始到最后一个模式对应(从结尾)(排除)获取变量的内容。所以“。*”在这种情况下削减了.txt。