重命名文件从 txt 文件中读取旧文件名和新文件名 (bash)
Rename files reading old file name and new file name from a txt file (bash)
我需要重命名目录中的一堆文件:
2016001.fas
2016002.fas
2016003.fas
...
正在阅读将实际文件名和新文件名选项卡分开的 .txt:
2016001 L.innocua001
2016002 L.innocua002
2016003 L.monocytogenes001
...
也许在 bash.
中使用单行循环或管道
请注意,如果需要,我还可以提供包含 .csv 或逗号分隔的 .txt 格式的实际文件名和新文件名的列表。感谢您提供的帮助。
xargs -a renames.txt -n 2 sh -c 'echo mv -- ".fas" ".fas"' _
xargs -a renames.txt
: 处理 renames.txt
的内容作为命令的参数。
-n 2
: 一次选择 2 个参数。
sh -c
:命令是 运行 内联 shell
- 内联 shell
'echo mv -- ".fas" ".fas"'
:使用 xargs 提供的参数 1 和 2 执行实际重命名。
# remove echo when output matches the intent
echo mv -- ".fas" ".fas"
仅使用 shell 读取 renames.txt
并执行重命名的方法:
while read -r a b; do
# Remove echo if satisfied by the output
echo mv -- "$a.fas" "$b.fas"
done <renames.txt
使用 awk 将 renames.txt
文件转换为 shell 脚本的替代方法,其中包含重命名命令:
awk '{print "mv -- "".fas "".fas"}' renames.txt
一旦满足上面awk的输出;保存到 shell 脚本文件,或直接通过管道传输到 sh.
我需要重命名目录中的一堆文件:
2016001.fas
2016002.fas
2016003.fas
...
正在阅读将实际文件名和新文件名选项卡分开的 .txt:
2016001 L.innocua001
2016002 L.innocua002
2016003 L.monocytogenes001
...
也许在 bash.
中使用单行循环或管道请注意,如果需要,我还可以提供包含 .csv 或逗号分隔的 .txt 格式的实际文件名和新文件名的列表。感谢您提供的帮助。
xargs -a renames.txt -n 2 sh -c 'echo mv -- ".fas" ".fas"' _
xargs -a renames.txt
: 处理renames.txt
的内容作为命令的参数。-n 2
: 一次选择 2 个参数。sh -c
:命令是 运行 内联 shell- 内联 shell
'echo mv -- ".fas" ".fas"'
:使用 xargs 提供的参数 1 和 2 执行实际重命名。
# remove echo when output matches the intent
echo mv -- ".fas" ".fas"
仅使用 shell 读取 renames.txt
并执行重命名的方法:
while read -r a b; do
# Remove echo if satisfied by the output
echo mv -- "$a.fas" "$b.fas"
done <renames.txt
使用 awk 将 renames.txt
文件转换为 shell 脚本的替代方法,其中包含重命名命令:
awk '{print "mv -- "".fas "".fas"}' renames.txt
一旦满足上面awk的输出;保存到 shell 脚本文件,或直接通过管道传输到 sh.