【问题标题】:Rename file using xargs -a file使用 xargs -a 文件重命名文件
【发布时间】:2016-01-31 15:08:25
【问题描述】:

我有几个文件:

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

有没有办法通过 rename、sed、sub 或 awk 做到这一点?

【问题讨论】:

标签: linux sed rename xargs


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    如果您的 sed 技能不那么强,或者您想以一般方式多次使用名称的基础,则以下内容会去除扩展名,然后允许仅从文件名构造命令而无需扩展名。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 2012-06-13
      • 2016-01-31
      • 2016-01-18
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多