Regex 如何删除';[';和';]';从awk字符串?

Regex 如何删除';[';和';]';从awk字符串?,regex,awk,Regex,Awk,我有一些需要从awk字符串中删除的regexp控制字符。如果可能的话,我如何用“mystring”替换“[mystring]”,而不使用原始字符串的第一个、最后一个索引?使用gsub()函数,您可以执行gsub(/[[]]/,“”,s)其中s是执行替换的字符串,您可能需要使用$0对整行进行替换,或者对第i个字段使用$i 使用gsub()函数可以执行gsub(/[[]]/,“”,s)其中s是执行替换的字符串,您可能需要使用$0对整行执行替换,或者对第i个字段执行$i 试用 awk '{ gsub

我有一些需要从awk字符串中删除的regexp控制字符。如果可能的话,我如何用“mystring”替换“[mystring]”,而不使用原始字符串的第一个、最后一个索引?

使用
gsub()
函数,您可以执行
gsub(/[[]]/,“”,s)
其中
s
是执行替换的字符串,您可能需要使用
$0
对整行进行替换,或者对第i个字段使用
$i

使用
gsub()
函数可以执行
gsub(/[[]]/,“”,s)
其中
s
是执行替换的字符串,您可能需要使用
$0
对整行执行替换,或者对第i个字段执行
$i

试用

awk '{  gsub( "\[", "" );gsub( "\]", "" );  print  }'
来源:

尝试使用

awk '{  gsub( "\[", "" );gsub( "\]", "" );  print  }'

来源:

我假设您想知道如何编写
sub/gsub
函数:

kent$  echo '[string]'|awk '{gsub(/[][]/,"")}1'
string

我假设您想知道如何编写
sub/gsub
函数:

kent$  echo '[string]'|awk '{gsub(/[][]/,"")}1'
string

一个简单的sed可以完成这项工作:

echo "[mystring]" | sed 's/[][]//g'
输出:


mystring

一个简单的sed可以完成这项工作:

echo "[mystring]" | sed 's/[][]//g'
输出:


mystring

假设您不希望删除输入中的所有“[”和“]”,而是只希望在字符串“mystring”周围出现它们时删除它们,使用GNU awk(对于gensub()),它是:


假设您不希望删除输入中的所有“[”和“]”,而是只希望在字符串“mystring”周围出现它们时删除它们,使用GNU awk(对于gensub()),它是:


不是典型的
awk
ish解决方案!;)@真的:所有其他答案都已经解决了那些典型的awk性质:)不是典型的
awk
ish解决方案!;)@TrueY:所有其他答案都已经解决了典型的awk性质:)
$0
sub
的默认源/目的地,
gsub
。我的意思是不需要显式写入脚本。
$0
sub
的默认源/目的地,
gsub
。我的意思是不需要显式地写入脚本。上面的错误是,在1可以的情况下使用2个gsub()s,并且使用双引号来分隔RE而不是重新分隔符(/),这反过来会使[s]需要双转义才能正常工作(即,您需要
“\\[”
)。如书面所述,awk应该给你一条警告信息,如“逃逸序列”[“被视为普通的”[”。是的,你是对的,我已经准备好给最短最正确的答案打分;)这是我的想法。上面使用2 gsub()是错误的当1可以时,使用双引号来分隔RE,而不是使用分隔符(/),这将使[s]需要双转义才能正常工作(即,您需要
“\\[”
)。编写时,awk应该给您一条警告消息,如
转义序列
[”被视为普通
['
。是的,你说得对,我已经准备好给最短、最正确的答案打分;)这是我的想法。。