Bash で、英単語の前後に半角スペース挿入する方法
以下のスクリプトで、YOUR_FILENAME のところを対象となるファイル名を指定して実行する。まずは元のファイルを YOUR_FILENAME.org という名前でコピー、オリジナルのファイルを上書きする形で英単語の前後に半角スペースを入れて置換する。
export FILENAME='index.rst'; \
cp ${FILENAME} ${FILENAME}.org; \
cat ${FILENAME}.org | sed y/0123456789/0123456789/ | \
sed -E "s/([^ \t:\*0-9\.,<>\-~a-zA-Z()ー[:punct:]]|\" \w+ )([a-zA-Z])/\1 \2/g" | \
sed -E "s/([a-zA-Z])([^ \t:\*0-9\.,<>\-~a-zA-Z()ー[:punct:]]| \w+ \"$)/\1 \2/g" > ${FILENAME}
HTML 文書の中でこの置換を行いたい場合、<span>...</span> によって見えないスペースが加えられていることがあるため、以下のスクリプトで対応する。