我有一些需要从awk字符串中删除的正则表达式控制字符。我怎样才能取代" [mystring]"使用" mystring",如果可能,不使用原始字符串的第一个,最后一个索引?
答案 0 :(得分:3)
使用gsub()
函数,您将执行gsub(/[][]/,"",s)
,其中s
是要替换的字符串,您可能希望使用$0
来完成替换整个第i个 th 字段的行或$i
。
$ echo '[mystring]' | awk '{gsub(/[][]/,"",$0)}1'
mystring
答案 1 :(得分:3)
我假设您想知道如何编写sub/gsub
函数:
kent$ echo '[string]'|awk '{gsub(/[][]/,"")}1'
string
答案 2 :(得分:1)
一个简单的sed可以完成这项工作:
echo "[mystring]" | sed 's/[][]//g'
<强>输出:强>
了mystring
答案 3 :(得分:0)
尝试使用
awk '{ gsub( "\[", "" );gsub( "\]", "" ); print }'
来源:http://www.linuxquestions.org/questions/programming-9/awk-delete-%5B-903132/
答案 4 :(得分:0)
假设你没有想要摆脱输入中的所有“[”和“]”,而是只想在字符串“mystring”周围删除它们时使用GNU awk(用于gensub())它是:
$ echo "[before] [mystring] [after]" |
gawk '{$0=gensub(/(.*)\[(mystring)\]/,"\\1\\2","")}1'
[before] mystring [after]