我有几个文件:
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?
答案 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 命令的一个实例。