Regex 如何删除';[';和';]';从awk字符串?
我有一些需要从awk字符串中删除的regexp控制字符。如果可能的话,我如何用“mystring”替换“[mystring]”,而不使用原始字符串的第一个、最后一个索引?使用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
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应该给您一条警告消息,如转义序列[”被视为普通['
。是的,你说得对,我已经准备好给最短、最正确的答案打分;)这是我的想法。。