与えられた区切り文字の間のn番目の部分文字列を特定する方法は?

与えられた区切り文字の間のn番目の部分文字列を特定する方法は?

区切り文字に次の文字列があるとします?

Leslie Cheung April 1 ? Elvis August 16 ? Leonard Nimoy February 27

grep文字間の最初の部分文字列を区切る方法を知っています。

echo $above_string | grep -oP "^[^?]*"
Leslie Cheung April 1

2番目または3番目の部分文字列をgrepするには、正規表現をどのように変更する必要がありますか?

ベストアンサー1

せん断を使うのはどうですか? 2番目のパターンを印刷するには

echo "$above_string" | cut -f2 -d "?"

2列目以降

echo "$above_string" | cut -f2- -d "?"

おすすめ記事