gpt4 book ai didi

regex - 使用 Sed 和正则表达式替换字符串

转载 作者:行者123 更新时间:2023-11-29 08:45:04 35 4
gpt4 key购买 nike

我正在尝试使用 sed 但使用正则表达式取消注释文件内容(例如:[0-9]{1,5})

# one two 12
# three four 34
# five six 56

以下是有效的:

sed -e 's/# one two 12/one two 12/g' /file

但是,我想要的是使用正则表达式模式替换所有匹配项而不输入数字,但将数字保留在结果中。

最佳答案

对于符合要求的示例问题,只需

sed 's/^# //' file

就足够了,但是如果只需要删除某些包含特定正则表达式的行的注释,那么您可以使用 conditionnal address:

sed '/regex/s/^# //' file

因此,包含 regex 的每一行都将被取消注释(如果行# 开始)

... 其中 regex 可以是 [0-9] 作为:

sed '/[0-9]/s/^# //' file

将删除每行包含数字的开头的 # ,或者

sed '/[0-9]/s/^# \?//' file

使第一个空格不需要:#one two 12,甚至

sed '/[0-9]$/s/^# //' file

将删除包含数字作为最后一个字符的行开头的 # 。然后

sed '/12$/s/^# //' file

将删除以 12 结尾的行开头的 # 。或者

sed '/\b\(two\|three\)\b/s/^# //' file

将删除包含 word twothree 的行开头的 #

关于regex - 使用 Sed 和正则表达式替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14072592/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com