Подключение к Интернету через LAN PPPoE [дубликат]

С awk

awk -F\/ '
  /HEAD/ {next} # skip lines matching HEAD
  $1 in a {
    a[$1] = a[$1]","$2; next
  }
  {
    if (last in a) print a[last]
    delete a
    a[$1] = $1":"$2
    last = $1
  }
  END {
    print a[last]
  }' input

Если вы не возражаете загружать весь файл в память, и не заботятся о заказе (или не возражаете повторной сортировке после) простой способ с может быть

awk -F\/ '
  /HEAD/ {next} # skip lines matching HEAD
  {
    a[$1] = a[$1] == "" ? $1":"$2 : a[$1]","$2
    next;   
  }
  END {
    for (i in a) print a[i]
  }' input | sort

или с современной версией GNU awk

gawk -F\/ '
  /HEAD/ {next} # skip lines matching HEAD
  {
    a[$1] = a[$1] == "" ? $1":"$2 : a[$1]","$2
    next;   
  }
  END {
    PROCINFO["sorted_in"] = "@ind_str_asc"
    for (i in a) print a[i]
  }' input
4
задан 30 November 2011 в 06:29

0 ответов

Другие вопросы по тегам:

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