使いたい2.6.2 パラメータ拡張文字列から先行文字を削除しましたが、「最大プレフィックスパターンの削除」がパターンを自動的に繰り返さないことに驚きました。
$ x=aaaaabc
$ printf %s\\n "${x##a}"
aaaabc
ご覧のとおり、最初の項目のみがa
削除されました。予想される出力は、またはbc
のいずれかです。x=bc
x=abc
x=aabc
x=aaabc
x=aaaabc
a
の始めからできるだけ削除したい場合は、パターンを作成する方法を心配しています$x
。多くの答えはbashを使用しているので、他のスレッドを検索することはできませんでしたが、POSIXシェルソリューションを探しています。
ベストアンサー1
一部のパターンでは、保持したい変数の部分を一致させてパターンを「反転」することができます。
$ for x in "" a aa abc aabc aaabc aaabca aaabcabc bc bcaa
> do
> printf %s\\n "${x#"${x%%[!a]*}"}"
> done
bc
bc
bc
bca
bcabc
bc
bcaa