一方:
$ shopt -s extglob
$ TEST=" z abcdefg";echo ">>${TEST#*( )z*( )}<<"
>> abcdefg<<
文字「a」の前にスペースがあるのはなぜですか?二度目も*( )
空間にふさわしくしたかったのですが、そうするには適していませんね。
私は次の結果を期待しています:
$ echo ">>$(echo -n "${TEST}" | perl -pe "s/^ *z *//g")<<"
>>abcdefg<<
*( )
次の文字(「a」など)を指定すると、2番目の文字が一致します。
$ shopt -s extglob
$ TEST=" z abcdefg";echo ">>${TEST#*( )z*( )a}<<"
>>bcdefg<<
ヒットバージョン: GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
ベストアンサー1
${TEST#...}
最も短い文字列、zの後にスペースがない文字列と一致します。あなたは${TEST##...}
最長のマッチが欲しいです。