sedでファイル内の文字列ではなく文字列単体を変更したい場合を考える。sedに渡すのは通常ファイル名かパイプを挟んだ標準入力なので、ある文字列を置換したければecho 文字列 | sed 's/_/-/g'のようにechoを使って文字列を標準出力し、それをパイプでsedに渡す。

しかしヒアストリングを使うとsed 's/_/-/g <<< 文字列のようにもっと簡潔に書くことができる。

もちろん文字列の部分には変数も使用できる。

$ var1=foo_bar_baz

# echoとパイプを使う方法
$ echo $var1 | sed 's/_/-/g'
foo-bar-baz

# ヒアストリングを使う方法
$ sed 's/_/-/g' <<< $var1
foo-bar-baz