我需要将一组文件路径复制到其他位置:
find . -name '*.txt':
/a/b/c/d/e/f/filea.txt
/a/b/c/d/e/g/h/fileb.txt
/a/b/c/d/e/k/l/filec.txt
我想将每个文件复制到包含 e 和之后的路径,例如:
cp /a/b/c/d/e/f/filea.txt e/f/
e路径永远存在。 我需要先找到所有文件。 如何从路径中查找、提取e 之后的所有内容并同时复制?
最佳答案
通过管道将 find
输出
sed 's|\(.*\)\(\*\*e\*\*.*/\)\(.*\)|cp \1\2\3 \2|'
如果结果看起来没问题,通过 sh
管道输出 sed。如果 **e**
只是指 e
,则模式为
sed 's|\(.*\)\(e.*/\)\(.*\)|cp \1\2\3 \2|'
关于linux - bash 从原始文件中提取路径复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31341382/