给出了两个sed的例子。
sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt
这对我来说很容易理解。
但是这个:
$ find /home/bruno/old-friends -type f -exec sed -i 's/ugly/beautiful/g' {} \;
为什么{} \;
在第二个中很重要?这有什么意义和意义?
我假设`;'是为-exec。但为什么要逃脱,括号是什么意思呢?他们可以想象与C函数的范围相似吗?
答案 0 :(得分:7)
sed
实际上不是find
,而是find
。该行告诉sed
找到匹配的文件,并在找到它们时执行{}
。 sed
是\;
命令行上的文件名,sed
标记find
命令行的结尾。 (理论上,您可以继续执行其他sed
操作;只有0
返回find
时才会发生这种情况。)
因此,如果/home/foo/bar
找到文件sed
,则{{1}}命令行将
sed -i 's/ugly/beautiful/g' /home/foo/bar