我有2个文本文件,需要重新命名包含所有文件列表的old.txt文件和具有新名称的new.txt文件。 例如old.txt
23654.jpg
hello world.doc
ok, it's done.docx
new.txt
2018.jpg
old.doc
...
我想逐行读取这些文件,并在命令mv
的参数中使用它们。我可以用一个文件(while read line
)来做,但是我不知道如何管理第二个文件...
最后,我想使用2个文件作为另一个bash命令的参数来源。
有什么想法吗?
谢谢
答案 0 :(得分:1)
您可以将另一个read
与不同 FD一起使用:
while IFS= read -r old_name && IFS= read -r new_name <&3; do
mv -- "$old_name" "$new_name"
done <old.txt 3<new.txt
或使用paste
和GNU xargs
(用于-d
选项):
paste -d'\n' {old,new}.txt | xargs -d'\n' -n2 mv --