E: Unable to locate package libssl-dev when trying to download 32bit OpenSSL on 64bit system

Следующая программа gawk должна работать для вас:

echo -e "unixtime;host_name;ip_adress;description;2;0;1\n1234567890;hName;hIP;hDesc;2;1;0" |
gawk -F";" 'BEGIN {OFS=";"} {
  if (NR<2) next;
  $1=strftime("%Y-%m-%d %H:%M:%S", $1);
  $5=($5==2?"CRITICAL":$5);
  $6=($6?"Yes":"No") ; $7=($7?"Yes":"No") ;
  print}'

2009-02-14 00:31:30;hName;hIP;hDesc;CRITICAL;Yes;No

Главное здесь то, что вы можете поместить несколько команд за один вызов awk .

$ 6 = ($ 6? «Да»: «Нет») или, более формально (условие? Последствие: альтернатива) , называется «тернарным» оператором, и это сокращение for if (условие) последствие иначе альтернатива

Если вы хотите напечатать строку заголовка без изменений , а не «пропустить ее», вы можете написать if (NR <2) {print ; next};

Edit: Реализована подсказка по повышению производительности от @cas, чтобы переместить назначение OFS в блок BEGIN.

3
29.09.2015, 17:09
0 ответов

Теги

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