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

时间:2013-05-09 15:11:34

标签: regex awk

我有一些需要从awk字符串中删除的正则表达式控制字符。我怎样才能取代" [mystring]"使用" mystring",如果可能,不使用原始字符串的第一个,最后一个索引?

5 个答案:

答案 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]