sed+替换字符串/单词并忽略字符串后的空格
我使用以下sed语法将时区字符串替换为时区 事实上,我们需要替换它, 但如果在时区字符串之后有一个或多个空格,则sed不会替换它 我的问题是,为了替换时区字符串,我需要在sed语法中更改什么 在这两种情况下 在时区字符串之后,我们没有任何空间 在时区字符串之后,我们有一个或多个空间sed+替换字符串/单词并忽略字符串后的空格,sed,Sed,我使用以下sed语法将时区字符串替换为时区 事实上,我们需要替换它, 但如果在时区字符串之后有一个或多个空格,则sed不会替换它 我的问题是,为了替换时区字符串,我需要在sed语法中更改什么 在这两种情况下 在时区字符串之后,我们没有任何空间 在时区字符串之后,我们有一个或多个空间 sed -i '/timezone$/s/timezone/#timezone/' file 您可以尝试: sed -i.bak -r 's/timezone ?$/#timezone/' file 您需要添加以
sed -i '/timezone$/s/timezone/#timezone/' file
您可以尝试:
sed -i.bak -r 's/timezone ?$/#timezone/' file
您需要添加以下内容吗?在空格之后,这将使空格成为可选的。此外,您还必须添加-r选项,以使sed理解扩展正则表达式
此外,您没有在-i选项之后指定备份扩展。您可以尝试:
sed -i.bak -r 's/timezone ?$/#timezone/' file
您需要添加以下内容吗?在空格之后,这将使空格成为可选的。此外,您还必须添加-r选项,以使sed理解扩展正则表达式
此外,您没有在-i选项后指定备份扩展名。将两个案例作为一个案例,您希望在“时区”位于行末尾时,将其替换为零个或多个空格。这应该是:
sed -i 's/timezone *$/#timezone/' file
如果将两种情况视为一种情况,则当“时区”位于行的末尾时,您希望将其替换为零个或多个空格。这应该是:
sed -i 's/timezone *$/#timezone/' file
这对于您的两种情况都是理想的解决方案
sed 's/timezone *$\|timezone/#&/' INPUT_FILE
这对于您的两种情况都是理想的解决方案
sed 's/timezone *$\|timezone/#&/' INPUT_FILE
假设“时区”每行只出现一次是否安全?如前所述,检查行是否以“timezone”结尾,然后将第一次出现的“timezone”替换为“timezone”。这似乎有点奇怪,但完全有可能。是的,备注-时区是一个函数-因此它每行仅显示一次是否可以安全地假设“时区”每行仅显示一次?如前所述,检查行是否以“timezone”结尾,然后将第一次出现的“timezone”替换为“timezone”。这似乎有点奇怪,但完全有可能。是的,备注-时区是一个函数-因此它每分钟只出现一个line@Davidthx condaddict对于这个伟大的解决方案,无论如何我都不需要备份,因为它的变化很小,但是从您那里学习新东西很好-:?如果只有零个空间或一个空间,则问题会询问一个或多个空间。顺便说一句,可以使用\?由于GNU sed BREs-r建议GNU sed。@David thx condaddict对于伟大的解决方案,无论如何我都不需要备份,因为它的变化很小,但从您那里学习新东西很好-:?如果只有零个空间或一个空间,则问题会询问一个或多个空间。顺便说一句,可以使用\?使用GNU sed BREs-r表示GNU sed。