シェルスクリプトで、括弧()やスペースなどの文字種をエスケープしたいときに手早い方法がないか。
printf が手軽だった。
printf "%q" 文字列
実際の例ーカッコ
次のようにいい感じにエスケープしてくれる。
takuya@~$ printf '%q\n' '(note)(todo) 2022-01-23.txt' \(note\)\(todo\)\ 2022-01-23.txt
実際の例- バックスラッシュ
バックスラッシュをエスケープしてくれる。
takuya@~$ printf '%q' 'C:\Windows' C:\\Windows
実際の例- シングルクォーテーション
所有で使われるシングルクォーテーションも
takuya@~$ printf '%q' "takuya's" takuya\'s
いい感じにエスケープを処理してコマンド文字列を作り、xargs や for に流せそうですね。