回答:
sed 's/^\(ab\)*//' <in >out
グループ化する必要があります。
echo ababababtestab |
sed 's/^\(ab\)*//'
testab
一部の古いsedSはいえ、非常によくそれを処理しない場合があります。部分式の複製はBREのPOSIX仕様の機能ですが、一部sedのはそれを適切にサポートしていません。それらのいくつかでは、しかし...
echo abababtestab |
sed 's/^\(ab\)\1*//'
...代わりに働くかもしれません。
sed1979年頃の第7版でもサポートされていました。グループ化を処理しないためには、それは劣った模造でなければなりません。
\n*は、をサポートするがをサポートしない一般的な履歴動作を考慮しました\n\{min,max\}。\(...\)*、または\(...\)\{min,max\}、特定の実装の意図的でない結果として、それらは部分式と後方参照に続く複製と間隔式の両方をサポートしました。
\(ab\)\1*バージョンはデフォルトの家宝sedで動作し、\(ab\)*バージョンはSuSv4家宝で動作しsedます。少なくとも、それは私のビルドでは有効です。確かに、musl lib Cに対して家宝セットを作成したので、動作が異なる可能性があります。しかし、通常、指定された機能が家宝のSuSv4家宝ツールで機能するがデフォルトのツールでは機能しない場合、それは開発者が機能させたためです。