sync
если Ваши записи являются не слишком частыми.Это должно сработать:
awk -F- '$1!=a{printf "%s", $1} {printf "-%s&", $2} {a=$1}' file | sed 's/&$/\n/g'
Outout:
4480-1&-2&-3&-15&4581-1&-2&-3&-4
Explantion:
awk -F-
delimiter is -
$1! =a{printf "%s", $1}
выведите первую часть 4480
, если она не совпадает с последней обработанной строкой{printf "-%s&", $2}
выведите вторую часть с &
в конце{a=$1}
установите a в обработанную строкуsed 's/&$/\n/g'
уберите последний символ, который является &
и добавьте новую строку Можно использовать переменную окружения IGNOREEOF
в режиме bash. Так что экспорт IGNOREEOF=42
и вам нужно будет нажать Ctrl+D
сорок два раза, прежде чем он фактически выйдет из вашей оболочки.
В наборе
также есть -о игнорировании
.