![]() |
1
252
警告 :确实如此 想想新线。有关更深入的答案,请参见 this SO-question 相反。(谢谢,Ed Morton&Niklas Peter) 注意逃避一切是个坏主意。Sed需要许多字符转义到 得到 它们的特殊意义。例如,如果在替换字符串中转义一个数字,它将转为反向引用。 正如Ben Blank所说,替换字符串中只需要转义三个字符(转义本身,正斜杠表示语句结束,而&表示全部替换):
如果你需要逃离
记住,如果你使用的不是
编辑: 由于之前没有考虑到一些拐角情况,上面的命令已经更改了好几次。有关详细信息,请检查编辑历史记录。 |
![]() |
2
84
|
![]() |
3
46
replace子句中专门处理的三个文字字符是
|
![]() |
4
33
基于Pianosaurus的正则表达式,我制作了一个bash函数,它可以同时跳过关键字和替换。
以下是使用方法:
|
![]() |
5
16
现在有点晚了。。。但有一种更简单的方法可以做到这一点。只需更改分隔符(即分隔字段的字符)。所以,代替
下面是简单的方法:
结果的输出没有那个讨厌的DEFINER子句。 |
![]() |
6
10
结果你问错了问题。我也问错了问题。它错的原因是第一句话的开头:“在我的 猛击 脚本。 我有同样的问题,也犯了同样的错误。如果您使用bash,则不需要使用sed进行字符串替换(而且 使用bash内置的replace特性的cleaner)。 而不是像这样,例如:
|
![]() |
7
1
使用awk-它更干净:
|
![]() |
8
0
这看起来太过分了,但不知怎么的,引号的组合可以保持'印刷为文字'。如果我没记错的话,这些变量就被这样的引号包围着:“$1”。试试看,让我知道它是怎么和SED一起工作的。 |
![]() |
9
0
我对sedeasy函数进行了改进,它将与tab这样的特殊字符分离。
附加管道
|
![]() |
10
-1
so(单位:ksh)
|
![]() |
11
-1
如果您只是想在sed命令中替换变量值,那么只需删除 例子:
|
![]() |
12
-2
如果您碰巧生成了一个随机密码以传递给
|
![]() |
13
-5
一个更简单的方法是在手动之前构建字符串并将其用作
|