ruto on Nostr: ...
普通のLinuxコマンドでファイル中の文字列を置換したいとき、置換後の文字列が不定(任意の文字を含み得る)のときってどうするのがいいんだろう。
jqありなら以下で行ける。
jq --raw-input --raw-output --arg x "$STR" 'gsub("foo", $x)' foo.txt > result.txt
短く書くと以下のようになる。
jq -Rr --arg x "$STR" 'gsub("foo", $x)' foo.txt > result.txt
AWKでawk -v FS=foo -v OFS="$STR" '{$1 = $1; print}'だとOFS内のバックスラッシュが解釈されてしまう。
cutのデリミタは1文字である必要がある。
jqありなら以下で行ける。
jq --raw-input --raw-output --arg x "$STR" 'gsub("foo", $x)' foo.txt > result.txt
短く書くと以下のようになる。
jq -Rr --arg x "$STR" 'gsub("foo", $x)' foo.txt > result.txt
AWKでawk -v FS=foo -v OFS="$STR" '{$1 = $1; print}'だとOFS内のバックスラッシュが解釈されてしまう。
cutのデリミタは1文字である必要がある。