У меня есть следующий скрипт:
ascript2.awk
#!/usr/bin/awk -f
BEGIN {FS=":"}
a[$1]=a[$1] ";" $2 " : " $3
END{
for (x in a) print x,a[x]}
Когда я его запускаю, он печатает также оригинальный файл intput.Зачем?Когда я создаю такой скрипт, он работает нормально:
слияние
#!/bin/bash
awk -F' *: *' '{a[$1]=a[$1] (a[$1]?" \\ " :" ; ") $2 ":" $3} END {for (x in a) print x,a[x]}' $1
Ввод:
Affe : 3 : test
Affe : 5 : test2
Money : 9 : test3
Выходы:
$ ./merge t.txt
Money ; 9:test3
Affe ; 3:test \ 5:test2
$ ./ascript2.awk t.txt
Affe : 3 : test
Affe : 5 : test2
Money : 9 : test3
Money ; 9 : test3
Affe ; 3 : test; 5 : test2