Sed 如果行不是以开头,则重复删除令牌#

Sed 如果行不是以开头,则重复删除令牌#,sed,Sed,我想从文本文件中删除所有逗号,除非一行以开头# 例如: a, b, c #a, b, c 应转向: a b c #a, b, c 我不介意对文件进行双重扫描,但我想使用sed执行此操作,您可以尝试下面的sed命令 $ sed '/^ *#/!s/,//g' file a b c #a, b, c ^断言我们处于起点。因此,上面的命令将匹配以零或更多空格和符号开头的行。然后是下面的使sed反向选择,即强制sed对不匹配的行进行替换s/,//g将所有逗号替换为空字符串 通过awk $ awk

我想从文本文件中删除所有逗号,除非一行以开头#

例如:

a, b, c
#a, b, c
应转向:

a b c
#a, b, c

我不介意对文件进行双重扫描,但我想使用sed执行此操作,您可以尝试下面的sed命令

$ sed '/^ *#/!s/,//g' file
a b c
#a, b, c
^
断言我们处于起点。因此,上面的命令将匹配以零或更多空格和
符号开头的行。然后是下面的
使sed反向选择,即强制sed对不匹配的行进行替换
s/,//g
将所有逗号替换为空字符串

通过awk

$ awk '!/^ *#/{gsub(/,/,"")}1' file
a b c
#a, b, c

在开始处否定模式。同样,它将仅在开始时没有
的行上进行替换。

您可以尝试下面的sed命令

$ sed '/^ *#/!s/,//g' file
a b c
#a, b, c
^
断言我们处于起点。因此,上面的命令将匹配以零或更多空格和
符号开头的行。然后是下面的
使sed反向选择,即强制sed对不匹配的行进行替换
s/,//g
将所有逗号替换为空字符串

通过awk

$ awk '!/^ *#/{gsub(/,/,"")}1' file
a b c
#a, b, c

在开始处否定模式。同样,它将仅在开始时没有
的行上进行替换。

您可以尝试下面的sed命令

$ sed '/^ *#/!s/,//g' file
a b c
#a, b, c
^
断言我们处于起点。因此,上面的命令将匹配以零或更多空格和
符号开头的行。然后是下面的
使sed反向选择,即强制sed对不匹配的行进行替换
s/,//g
将所有逗号替换为空字符串

通过awk

$ awk '!/^ *#/{gsub(/,/,"")}1' file
a b c
#a, b, c

在开始处否定模式。同样,它将仅在开始时没有
的行上进行替换。

您可以尝试下面的sed命令

$ sed '/^ *#/!s/,//g' file
a b c
#a, b, c
^
断言我们处于起点。因此,上面的命令将匹配以零或更多空格和
符号开头的行。然后是下面的
使sed反向选择,即强制sed对不匹配的行进行替换
s/,//g
将所有逗号替换为空字符串

通过awk

$ awk '!/^ *#/{gsub(/,/,"")}1' file
a b c
#a, b, c
在开始处否定模式。同样,它将仅在开始时没有
的行上进行替换