Как распечатать содержимое одного из столбцов, относящихся к одному и тому же пользователю, просто используя awk?

Вы специально просили catрешение, но вот как zshможно добиться того же конечного результата, не вызывая никаких реальных команд.

% <test1 <test2 >>random
%
1
04.10.2019, 10:28
2 ответа

Вот и мы:

# Save the filename
filen="test.txt"
# Save the column name
col_name="$(head -n1 $filen|awk '{print $1}')"
# Save the target word
to_find="abc123"
echo "$col_name: $to_find" ; for name in $(grep $to_find $filen | awk '{print $4}'); do echo "  $name"; done

Пример текста:

User    ColumnA  ColumnB  ComumnC
abc123  hi       hello    howdy?
xyz123  Namaste  que paso rowdy?
abc123  hi       hello    bowdy?

Выход:

User: abc123
  howdy?
  bowdy?
0
27.01.2020, 23:30

Используйтеawk:

awk -F'\t' '
NR>1{
    if(!o[$1]) {o[$1]="User: "$1"\n\t"$4}
    else {o[$1]=o[$1]"\n\t"$4}
}
END { for (i in o) print o[i] }
' file

Выход:

User:abc123
    howdy?
    bowdy?
User:xyz123
    howdy?
2
27.01.2020, 23:30

Теги

Похожие вопросы