0

我想将 100 个 .txt 文件更改为 .log 文件。我有以下过程,但它不起作用。

ls |grep *.txt |while read a ; 
do b = 'echo $a |cut d"." -$f1'; 
c=$b ;
mv $a $c; 
done

提前致谢 !!

4

2 回答 2

4
for i in *.txt; do mv $i $(basename -s '.txt' $i).log; done

或者,更简单的是,如果您的系统具有以下rename命令:

rename 's/\.txt$/.log/' *.txt
于 2013-10-25T17:45:14.413 回答
0
for i in *.txt
 do
   mv $i ${i%.*}.log
 done

${var%"pattern"} 取变量的内容从开始直到最后一个模式对应(从结束)(排除)。因此,“.*”在这种情况下剪切了 .txt。

于 2013-10-28T15:52:41.853 回答