awk
awkは括弧でくくってパターンマッチした一部分を抽出するのは書けないけど、gawk(GNU awk)は書けるらしい
gawk {'print gensub(/パターン/,"置換文字","g",対象文字列)'}
$ echo "abcdef" | gawk {'print gensub(/a(b)c/,"\\1","g",$0)'} bdef
$ echo "abcdef" | gawk {'print gensub(/a(.*)f/,"\\1","g",$0)'} bcde
\1
の部分が括弧と対応する数
ログファイルから抜き出すときに便利かも。grepやsedでも出来そうですね。
sed
echo "abcdef" | sed -E 's/a(.*)f/\1/g' bcde
-E
オプションがバージョンによってはないみたい。
-eでも大丈夫だった
echo "abcdef" | sed -e 's/a(.*)f/\1/g' bcde