Ну, этот awk просто неверен.Например, FS
нельзя установить таким образом, он будет выводить каждую запись:
$ awk 'FS=" "' file
fruit apple 1 3
fruit mango 4 9
vegetable tomato 6 5
fruit orange 9 8
vegetable potato 1 4
Использование:
$ awk 'BEGIN{FS=" "}' file
Далее, вы не ссылаетесь на переменные как $fr
в awk (если это не то, что вы после).Это оценивается как $0
, и вы печатаете всю запись, которая объясняет дублированные записи в вашем выводе.Итак, чтобы обернуть это:
$ awk '
BEGIN { FS=" " }
$1 == "fruit" { fr=$2; print fr }' file
apple
mango
orange
(или просто awk '/^fruit/{print $2}'
файл)