gawk '
{
arr[cnt][0] = $1
arr[cnt++][1] = $2
}
END {
for(i = 0; i < cnt; i++) {
if(!arr[i][0]) continue
next_name = arr[i][0]
for(j = i; j < cnt; j++) {
if(arr[j][0] != next_name) continue
if(arr[j][1]) {
next_name = arr[j][1]
delete arr[j]
}
printf "%s ", next_name
}
print ""
}
}' cnt=0 input.txt
Вход(сложный для тестирования)
u
a
a f
b
c
c e
d
c
f g
g a
a i
i j
a
a z
z w
Выход
u
a f g a i j
b
c e
d
c
a z w
Оболочка расширяется $you
как (вероятно пустая )переменная, поскольку вы использовали "слабые" (двойные )кавычки.
Вы можете подтвердить это, установив в оболочке x
опцию:
$ grep -F "hey$you" test
+ grep --color=auto -F hey test
# hey$you
# hey$me
Как видите, "hey$you"
становится просто hey
-, что соответствует обеим строкам.
Напротив, с сильными (одиночными )кавычками вокруг шаблона:
$ grep -F 'hey$you' test
+ grep --color=auto -F 'hey$you' test
# hey$you