我有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命令的参数源。
有任何想法吗?
谢谢
你可以使用另一个不同FD的read
:
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 --