ファイル内のすべての特殊文字(é、ü、ãなど)をラテックス形式(\ 'e、\ "u、\ 〜aなど)に変換するbashスクリプトを作成しようとしています。通常、これは次のとおりです。 sed
を使用すると非常に簡単ですが、sedで特殊文字を認識できません。isoまたはUTF-8エンコーディングを使用してファイルを読み取るようにコマンドに指示するにはどうすればよいですか。
それが不可能な場合、特殊文字を理解するためにsedを取得する方法はありますか?
それは同じくらい簡単にすることができます
iconv --from-code $enc input-file |
sed 's/é/\\'\''e/;s/ü/\\"e/;s/ã/\\~a/' |
iconv -to-code $enc >converted-input-file
ここで、変数enc
には、iconv -l
から取得した文字列の1つである入力ファイルのエンコーディングが含まれています。