Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何替换shell中的句子?_Regex_Shell_Replace_Sed - Fatal编程技术网

Regex 如何替换shell中的句子?

Regex 如何替换shell中的句子?,regex,shell,replace,sed,Regex,Shell,Replace,Sed,我想找到一种方法来替换Shell中文本文件中的一个句子 例如,我想将中的“客户名称1”替换为“客户名称,杰克”。 我故意把这些特殊的字符包括在内 我理解sed-I的/original/new/g'文件 我正在寻找一些可以取代更复杂的句子,可能包括特殊字符的东西 您的示例在sed中运行良好 $ sed 's/Customer Name 1/customer name, jack _ 1/g' cust cust Customer Name 1 customer name, jack _ 1 (输

我想找到一种方法来替换Shell中文本文件中的一个句子

例如,我想将中的“客户名称1”替换为“客户名称,杰克”。 我故意把这些特殊的字符包括在内

我理解
sed-I的/original/new/g'文件


我正在寻找一些可以取代更复杂的句子,可能包括特殊字符的东西

您的示例在sed中运行良好

$ sed 's/Customer Name 1/customer name, jack _ 1/g'
cust
cust
Customer Name 1
customer name, jack _ 1
(输入奇数行,输出偶数行。)

通常,如果您的某些符号被误解,您可以尝试通过在它们之前添加反斜杠(
\
)来转义它们

perl -i.bak -pe 's/Customer Name 1/customer name, jack _1/g;' [file(s)]

对一个或多个文件的就地编辑也会执行相同的操作

您担心哪些特殊字符
sed
将处理大部分内容,不过您需要注意原始文本或替换文本中的任何斜杠,并对其进行特殊处理。模式中的换行是另一个问题;你一定要担心吗?