这不完全是sed语法问题,而是find语法问题。
这{}是一个容器,将替换命令正在处理的文件的名称sed。
如果你find这样使用:
$ find . -type f -name *.py -exec head {} \;
Run Code Online (Sandbox Code Playgroud)
这将找到 Python 脚本并显示每个文件的头部。如果当前目录中有三个脚本:
将{}包含每个文件名并head在每个文件上执行命令。
该参数末尾-exec需要一个,以便它可以识别命令参数的结尾(在本例中),但是,为了防止扩展,您需要使用.;sed;\
请记住,如果使用以下命令,则可以一次执行多个命令;:
$ ls; pwd;
Run Code Online (Sandbox Code Playgroud)
这将列出目录 ( ls) 并打印您的工作目录 ( pwd)。论证-exec还需要;. 但由于您不想将;分隔命令的 与参数;一部分的混淆,因此您需要使用 来转义它。-execfind\
或者,您可以在以下位置使用引号;:
$ find /home/bruno/old-friends -type f -exec sed -i 's/ugly/beautiful/g' {} ";"
Run Code Online (Sandbox Code Playgroud)
我希望我说清楚了
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |