$ tree ./
とすると、以下のようにディレクトリ構造が出力される。
./docoTsubu ├── WEB-INF │ ├── jsp │ │ ├── loginResult.jsp │ │ ├── logout.jsp │ │ └── main.jsp │ └── llb │ ├── jstl-api-1.2.jar │ └── jstl-impl-1.2.jar ├── build.xml ├── common.jsp ├── docoTsubu.xml ├── footer.jsp ├── index.jsp └── src ├── model │ ├── LoginLogic.java │ ├── Mutter.java │ ├── PostMutterLogic.java │ └── User.java └── servlet ├── Login.java ├── Logout.java └── Main.java
これを Tex で出力すると、このようになる。

この ^^c2^^a0 なるものは、何か?
UTF-8での半角空白文字列ということで特殊文字だそうである。
少しぐらいなら手作業で ^^c2^^a0 を半角スペースに置き換えていけばいいのだが、 今回のように量が多くなると、自動化したくなる。
さて、その変換プログラムを何で作るか。
C, OCaml, などなどが考えられるが、まあシェルでやってるので、シェルスクリプトで 作成してみる。
いくつかのサイトを参考にしてできたスクリプトが以下である。
c2a0space.sh
#!/bin/bash
PRE_IFS=$IFS
IFS=$'\n'
if [ -p /dev/stdin ] ; then
echo "stdin"
cat - | while read line
do
new=`echo "$line" | sed -e "s/\xc2\xa0/ /g"`
echo "$new"
done
else
echo "nothing stdin"
fi
IFS=$PRE_IFS
シェルスクリプトにあまり詳しくないので、無駄な記述があるかもしれない
参考サイト
- JavaでC2A0を通常の半角スペース(20)に置換
- シェルスクリプトでファイルを1行ずつ読み込む
- bashで変数を正規表現で置換して変数に代入する方法
- Bash シェルスクリプトで標準入力を受け取る
- 文字列の連続スペースを出力する
- シェルスクリプト-スペースが含まれる文字列を扱う