メモの日々


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}」という文字列の色も変えてしまうことに気付いた。なんでこういう動作になるのかな。