2017年05月18日(木) [長年日記]
■ [unix][shell] 文字の色を変えるスクリプト(2)
11年前にメモした文字の色を変えるスクリプトを使いたくなった。
ここに書いていた「2回使うと何も表示されない」という問題は、sedに -u オプションを付ければ解決する模様。また、文字の色を変えるより背景色を変えた方が目立つので、
#!/bin/bash if [ $# -lt 1 ]; then echo 'usage $0 <string>' exit 1 fi sed -u -e "s/${1}/^[[43m${1}^[[0m/g"
と微修正(「^[」の部分はエスケープ文字を直接入力する必要がある)。
あと、このスクリプトは指定文字列以外に「${1}」という文字列の色も変えてしまうことに気付いた。なんでこういう動作になるのかな。