私は次の表現を知っています。
echo "bob alice robert alice" | awk '{print index($0,"alice")}'
5
最初のアリスと一致するインデックスが出力されます。一致するすべてのインデックスを取得する方法はありますか? 、例えば:
echo "bob alice robert alice" | awk 'unknown magic'
5:18
ベストアンサー1
POSIXツールボックスの使用:
echo "bob alice robert alice"| p=alice awk '
{
while(1) {
$0 = substr($0, RSTART+RLENGTH)
match($0, ENVIRON["p"])
if (RSTART == 0) break
i = i ? i+RSTART+RLENGTH-1 : RSTART
print i
}
}' | paste -sd: -
5:18