1. ホーム
  2. bash

[解決済み] bash で文字列をエスケープするコマンド

2022-05-17 04:10:37

質問

文字列をエスケープされたものに変換してくれるbashコマンドが必要です。 以下はその例です。

echo "hello\world" | escape | someprog

エスケープコマンドで "hello\world""hello\\\world" . そうすると、someprog は "hello\\world" を期待通りに使うことができます。 もちろん、これは私が実際に行うことを単純化した例です。

どのように解決するのか?

Bashで。

printf "%q" "hello\world" | someprog

を例とします。

printf "%q" "hello\world"
hello\\world

これも変数を通して使うことができる。

printf -v var "%q\n" "hello\world"
echo "$var"
hello\\world