0
awkが指定されたパターンをマッチした場合に変更するか、元の行を返そうとしています。ここでは、[1]が一致するときメートルで「」私のコードは、私は `試合はメートルで一致したパターンを返すことを期待パターンが一致するかどうかのawk条件
printf 'hello,"hru, bro"\nhi,bye\n' | gawk 'match($0, /"([^"]+)"/, m) {if (m[1] == "") {print $0} else {print gsub(/,/,"",m[1])}}'
-> 1
だ[1]と、すべてを置換するGSUB。結果は
-> hello,hru bro\nhi,bye
ここでは何が分かりますか?
UPDATE
トムのコメントによると、私はgensub
でgsub
を置き換える、まだ私は今、次の結果を取得:
-> gawk: cmd. line:1: (FILENAME=- FNR=1) warning: gensub: third argument `hru, bro' treated as 1
hello"hru, bro"
ありがとう、私はドキュメントをチェックし、代わりに 'gensub'を使うべきでした。だから、私はその愚か者としての質問を削除します。 – user3639782
実際には問題は解決しません。私はそれに応じて自分の投稿を更新しました。 – user3639782
警告メッセージがあなたに伝えているようにgensub()に間違った引数を渡していますが、そのコードを表示していないので、それ以上のことは分かりません。 –