shell 如何替换sed中有未知数量空格的行?[副本]

hfwmuf9z  于 2023-05-07  发布在  Shell
关注(0)|答案(1)|浏览(113)

此问题已在此处有答案

White spaces in sed search string(3个答案)
2天前关闭。
我想用sed替换文件中的行。但是我尝试替换的行包含未知数量的空格:
我试着用:space::blank:匹配空白字符,但运气不好:
我想替换

  • gender: FEMALEgender: FEMALE_X
  • gender: FEMALEgender: FEMALE_X
  • gender: FEMALEgender: FEMALE_X
  • gender: FEMALEgender: FEMALE_X

我该怎么做?
我试过了

sed -i 's/gender:[[:space:]]FEMALE/gender: FEMALE_X/g'

sed -i 's/gender:[[:blank:]]FEMALE/gender: FEMALE_X/g'

但没有一个适用于上述所有情况。

798qvoo8

798qvoo81#

您也可以使用&重复匹配的部分:

sed -E 's/^gender: *FEMALE/&_X/' file
                   ^
              quantifier needed here
正则表达式匹配如下:
节点解释
^弦锚的起点
gender:'性别:'
*空格(0次或多次(匹配最大可能量))
FEMALE“女性”

相关问题