同様の文字列がありますNew\x20Folder
。特殊文字は対応するコードで表示されます。文字列を引用形式に変換したいと思います"New Folder"
。
利用可能な唯一のツールは、bashやsedなどの標準ユーティリティです。
最初のフォームはudev環境変数によって生成されますID_FS_LABEL_ENC
。 autofs 構成ファイルは必須形式を使用します。引用符付き文字列が必要です。
答え1
バックスラッシュ自体も文字列(おそらく)からエスケープされて\x5c
いると仮定すると、udev
printf
組み込み:
printf -v translated '"%b"' "$ID_FS_LABEL_ENC"
例の文字列を試してみると、次のようになります。
$ ID_FS_LABEL_ENC='New\x20Folder'
$ printf -v translated '"%b"' "$ID_FS_LABEL_ENC"
$ echo "Translated to: '$translated'"
Translated to: '"New Folder"'
ご希望の変更をお受けいたします。
printf -v
バックスラッシュエスケープシーケンスを実行するBash拡張形式で、標準スタイルの翻訳結果をprintf
変数に割り当てます。%b
これは名前には奇妙ですが、正当な文字を含む興味深いビジネスの影響を受けず、文字列の書き換えは不要です。
答え2
この試み:
string=$'New\x20Folder'
または
string="New\x20Folder"
string="$(echo -e "$string")"