使用xargs -a文件重命名文件

时间:2015-10-31 06:25:04

标签: linux sed rename xargs

我有几个文件:

test1.log
test2.log
test3.log
test.txt

test.txt包含:

./test1.log
./test2.log
./test3.log

我希望能够使用我的:

test.txt

xargs -a test.txt ......

重命名

 test1.log
 test2.log
 test3.log 

到.txt文件:

 test1.txt
 test2.txt
 test3.txt

有没有办法重命名,sed,sub或awk?

2 个答案:

答案 0 :(得分:0)

我在这个链接上找到了答案:

http://www.commandlinefu.com/commands/view/8368/bulk-rename-files-with-sed-one-liner

这不是我想要做的,但它确实有效:

ls * .log | sed -e' s / .log / .txt /' | xargs -n2 mv

答案 1 :(得分:0)

如果您的 sed 技能不那么强,或者您想以一般方式多次使用名称的基础,以下内容会剥离扩展名,然后只允许从没有扩展名的文件名中构造命令。

>
ls **/*.txt | sed 's/\.txt$//' | xargs -n1 -i mv {}.txt {}.md

**/.txt 使用 bash shopt globstar 来包含子目录。如果您没有启用 globstar shopt,您可以将“ls **/.txt”替换为 find 命令的一个实例。