我有一些需要从 awk 字符串中删除的正则表达式控制字符。如果可能的话,如何在不使用原始字符串的第一个、最后一个索引的情况下将“[mystring]”替换为“mystring”?
问问题
116 次
5 回答
3
使用您将在哪里执行替换的gsub()
函数,您可能希望使用在整行或第 i个字段上执行替换。gsub(/[][]/,"",s)
s
$0
$i
$ echo '[mystring]' | awk '{gsub(/[][]/,"",$0)}1'
mystring
于 2013-05-09T15:15:03.497 回答
3
我假设您想知道如何编写sub/gsub
函数:
kent$ echo '[string]'|awk '{gsub(/[][]/,"")}1'
string
于 2013-05-09T15:16:33.980 回答
1
一个简单的 sed 可以完成这项工作:
echo "[mystring]" | sed 's/[][]//g'
输出:
我的字符串
于 2013-05-09T15:17:17.983 回答
0
尝试使用
awk '{ gsub( "\[", "" );gsub( "\]", "" ); print }'
来源:http ://www.linuxquestions.org/questions/programming-9/awk-delete-%5B-903132/
于 2013-05-09T15:16:14.497 回答
0
假设您不想删除输入中的所有“[”和“]”,而是只想在它们出现在字符串“mystring”周围时删除它们,使用 GNU awk(对于 gensub() ) 它的:
$ echo "[before] [mystring] [after]" |
gawk '{$0=gensub(/(.*)\[(mystring)\]/,"\\1\\2","")}1'
[before] mystring [after]
于 2013-05-09T15:25:53.827 回答