1

awk 文字列から削除する必要がある正規表現制御文字がいくつかあります。可能であれば、元の文字列の最初と最後のインデックスを使用せずに、「[mystring]」を「mystring」に置き換えるにはどうすればよいですか?

4

5 に答える 5

3

gsub()関数gsub(/[][]/,"",s)where sis the string を使用して置換を行うと、行全体または i 番目のフィールドに対して置換を実行するために使用する$0ことが$iできます

$ echo '[mystring]' | awk '{gsub(/[][]/,"",$0)}1'
mystring    
于 2013-05-09T15:15:03.497 に答える
1

シンプルな sed でこの作業を行うことができます:

echo "[mystring]" | sed 's/[][]//g'

出力:

ミスストリング

于 2013-05-09T15:17:17.983 に答える
0

入力内のすべての "[" と "]" を取り除こうとしているのではなく、GNU awk (for gensub() ) これは:

$ echo "[before] [mystring] [after]" |
  gawk '{$0=gensub(/(.*)\[(mystring)\]/,"\\1\\2","")}1'
[before] mystring [after]
于 2013-05-09T15:25:53.827 に答える
0

使ってみて

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

ソース: http://www.linuxquestions.org/questions/programming-9/awk-delete-%5B-903132/

于 2013-05-09T15:16:14.497 に答える