Совпадающие значения в столбцах

Сделайте вещи простыми для себя: Используйте RVM для Ruby и Домашнее пиво для мерзавца (и другой материал).

RVM устанавливает несколько (при желании) различные версии Ruby для Вас и позволяет Вам переключиться между ними легко.

Домашнее пиво в основном fink/macports успевшее..., лучше. Намного лучше.

Удачи!

1
28.07.2012, 02:53
2 ответа

Принятие Вас означает, что целый второй элемент является тем же в каждом случае, можно использовать его в качестве ключа в ассоциативном массиве. Вот awk пример, который полагается на это:

awk '
/^EN/ {
  if(H[$2] == "")
    H[$2] = $1
  else
    H[$2] = H[$2]","$1
}
END {
  for(key in H)
    print key, H[key]
}' infile

Вывод:

Nucus_2158_mri_4/2_Co_1.0_Le_3104 EN2
Nucus_2159_mri_1/2_Co_1.0_Le_3104 EN6
Nucus_2158_mri_1/2_Co_1.0_Le_3104 EN1,EN3,EN5
Nucus_2158_mri_1/2_Co_1.0_Le_3106 EN4
2
27.01.2020, 23:21

передача в этих трех ключах с помощью awk переменные командной строки (названный первым, вторым и третьим в примере ниже)

awk -v first=2158 -v second=1/2 -v third=3104 
'$2 == "Nucus_"first"_mri_"second"_Co_1.0_Le_"third{print($2,$1)}' input.txt      
| awk '{deleter=$1; gsub(deleter, "", $0);} NR != 1 {deleter=""}{print(deleter" "$0)}' 
| sed -e 's/^\s\+//g' | sed ':a;N;$!ba;s/\n/,/g'
2
27.01.2020, 23:21

Теги

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