删掉之后,在原位置插入另外一条语句
时间: 2024-03-20 16:40:42 浏览: 10
要在删除的行后面插入一条新的语句,可以使用 `sed` 命令的插入命令 `i`。假设你要在删除的行后面插入一条新的命令 `echo "Hello World"`,你可以使用以下命令:
```
sed -i '10i echo "Hello World"' filename
```
其中,`-i` 表示直接修改原文件,`10` 是你要插入新命令的行号,`i` 表示插入命令,`echo "Hello World"` 是你要插入的新命令,`filename` 是你要操作的文件名。
如果你不确定行号,也可以使用匹配模式来插入。比如,你可以使用以下命令在匹配行的后面插入新命令:
```
sed -i '/curl -H .*accesslog_template" -d@template\.json/a echo "Hello World"' filename
```
其中,`/curl -H .*accesslog_template" -d@template\.json/` 是匹配模式,表示匹配包含 `curl -H 'Content-Type:application/json' -XPUT "http://${ip}:${port}/_template/accesslog_template" -d@template.json` 的行,`a` 表示在匹配行后面插入命令,`echo "Hello World"` 是你要插入的新命令,`filename` 是你要操作的文件名。
相关问题
删掉之后,在原位置插入另外一条语句,只有ip和Port不一样,其它全都一样
如果只有 `${ip}` 和 `${port}` 不同,你可以使用变量来动态生成新的命令,并使用 `sed` 命令将其插入到删除的位置。假设你的脚本中定义了变量 `$new_ip` 和 `$new_port`,你可以使用以下命令:
```
new_cmd="curl -H 'Content-Type:application/json' -XPUT \"http://${new_ip}:${new_port}/_template/accesslog_template\" -d@template.json"
sed -i "/curl -H .*accesslog_template\" -d@template\.json/c\\$new_cmd" filename
```
其中,`new_cmd` 是新的命令,`${new_ip}` 和 `${new_port}` 是变量,`/curl -H .*accesslog_template\" -d@template\.json/` 是匹配模式,表示匹配包含原命令的行,`c\\` 表示替换命令,`$new_cmd` 是要替换成的新命令,`filename` 是你要操作的文件名。
这样,`sed` 命令会在匹配到原命令的行时将其替换成新的命令,从而实现在原位置插入另外一条语句,并且 `${ip}` 和 `${port}` 被动态替换成了 `${new_ip}` 和 `${new_port}`。
mysql sql语句删除一条数据
要使用 SQL 语句删除 MySQL 数据库中的一条数据,可以使用 DELETE FROM 语句。以下是删除数据的示例:
```
DELETE FROM 表名 WHERE 条件;
```
其中,`表名` 是要删除数据的表名,`条件` 是指定要删除哪些数据的条件。例如,假设有一个名为 `users` 的表,其中有一个 `id` 列和一个 `name` 列,如果要删除 `id` 为 1 的用户,可以使用以下 SQL 语句:
```
DELETE FROM users WHERE id = 1;
```
这将从 `users` 表中删除 `id` 为 1 的用户数据。请注意,执行此操作将永久删除该数据,请谨慎操作并确保已备份重要数据。