シェルで文字列の間の文字列を抜き出す

> cat tmp.txt
abc:!!;def

!!を抜き出すことを考えます。

ここではcutを用います。

> cat tmp.txt | cut -d ":" -f{数字}

により、:を境に第{数字}フィールドを抜き出します。

例えば、

> cat tmp.txt | cut -d ":" -f1
abc

> cat tmp.txt | cut -d ":" -f2
!!;def

となります。

!!が含まれているのは第2フィールドなので、これを用います。

!!;で分けた時の第1フィールドなので、

> cat tmp.txt | cut -d ":" -f2 | cut -d ";" -f1
!!

と書くことで、!!を抽出することが出来ます。