我有与分散在不同目录中的人相关的文件。 我可以通过主文件找到它们。 其中一些需要被拉到我的工作目录中。 提取它们后,我需要更新主文件以反映更改。 为了跟踪哪些文件被移动,我将这个人的名字记录在另一个文件中。
master.txt
Bob "/home/a/bob.txt"
Linda "/home/b/linda.txt"
Joshua "/home/a/josh.txt"
Sam "/home/f/sam.txt"
移动.txt
Linda
Sam
master.txt的预期结果
Bob "/home/a/bob.txt"
Linda "/workingdir/linda.txt"
Joshua "/home/a/josh.txt"
Sam "/workingdir/sam.txt"
我已经尝试过了
grep -f moved.txt master.txt | sed "s?\/.*\/?"`pwd`"\/?"
grep -f moved.txt master.txt | sed "s?\/.*\/?"`pwd`"\/?" master.txt
grep -f moved.txt master.txt | sed -i "s?\/.*\/?"`pwd`"\/?"
更复杂的是,这将作为 python 脚本的一部分执行,因此它需要能够在 subprocess.run(cmd) 中工作。
我会做什么:
$ grep -f moved.txt master.txt | sed -E 's@/.*(/[a-zA-Z]+\.txt)@/workdir\1@'
Linda "/workdir/linda.txt"
Sam "/workdir/sam.txt"