С помощью GNU datamash (и awk для изменения порядка столбцов, если это важно для вас):
$ datamash -W --header-in groupby 1,4 count 4 < teams.csv | awk '{print $3, $2, $1}'
1 Loss Knicks
1 Win Celtics
2 Loss Lakers
1 Win Knicks
1 Win Lakers
Обратите внимание, что, поскольку мы не просим сортировать datamash, группируются только те результаты, которые уже находятся рядом.
Если ваши данные действительно разделены запятой , замените-W
на-t,
Вы создаете функцию в своем скрипте, но никогда ее не используете. Вы можете получить этот скрипт, а затем вызватьpidwait 4569
(no./ )или добавить вызов функции внутри скрипта:
#!/usr/bin/env bash
function pidwait()
{
while kill -0 "$1"; do
echo "Process $1 still running..."
sleep 1
done
echo "Process $1 is done"
}
pidwait "$1"
Кроме того, использование одинарных кавычек во второй команде echo приведет к выводу литерала $1
вместо значения первого параметра.