在linux中查找和执行命令。是否可以管道2查找和执行命令

时间:2014-03-14 19:11:14

标签: linux

我正在努力完成这项任务

1)找到目录A(DIR_A)并将目录中的所有文件(包括其子目录,如果有的话)复制到名为DIR_B的新目录中

2)在目录(DIR_B)中,将单词apple替换为橙色

我执行了以下代码,由于某种原因,它复制了所有文件,但在第二个任务中失败了(用橙色替换苹果)。我很感激这方面的帮助。以下是我的代码

find DIR_A -iname FILEA -type f -exec cp {} DIR_B \;|find DIR_B/ -iname \*.* -type f -exec sed -i "s|apple|orange|g" {} \;

2 个答案:

答案 0 :(得分:0)

试试这个:
Sed语法:
sed' s / old / new / g'

 find DIR_A -iname FILEA -type f -exec cp {} DIR_B \;|find DIR_B/ -iname \*.* -type f -exec sed -i "s/apple/orange/g" {} \;

答案 1 :(得分:0)

为什么不按顺序运行它们,而不是试图将一个查找的输出汇总到另一个中呢?我不确定find是否从其标准输入读取。

find DIR_A -iname FILEA -type f -exec cp {} DIR_B \; ; find DIR_B/ -iname \*.* -type f -exec sed -i "s|apple|orange|g" {} \;

我用分号替换了你的烟斗。