如何使用SED命令替换文件中的行/部分?
search_text_1_server=value.env_1.path_to_file
search_text_2_server=value.env_1.path_to_file
search_text_3_server=value.env_1.path_to_file
some_other_key=value.env_1.another_path
现在我想要一个sed命令来查找与正则表达式search_text_{any}_server and then replace env_1 with env_2
找到正则表达式以找到所需的行。
^search_text_[a-z_]\*_server.*$
现在如何添加SED语法来替换
PS:我不是shell的专家
答案 0 :(得分:0)
你的正则表达式很接近。您可以使用:
sed -E 's/^(search_text_[a-z_]*_server=.*)env_1\./\1env_2\./' file
search_text_1_server=value.env_2.path_to_file
search_text_2_server=value.env_2.path_to_file
search_text_3_server=value.env_2.path_to_file
some_other_key=value.env_1.another_path
答案 1 :(得分:0)
假设国家/地区代码是两个字母,您可以
state
应该这样做。
这里发生了什么
sed -Ei 's/(search_text_[a-z]{2}_server=value\.)env_1/\1env_2/' file
检查制作国家/地区代码的两个字母[a-z]{2}
命令用于替换 - > s
s/pattern/replacement
选择匹配的正则表达式模式以供重用,请注意()
以便重复使用\1
是-i
的就地编辑选项,可在文件中永久更改