2012-02-15 2 views
1

Как бы присоединиться к двум линиям, которые используются awk или sed?Brocade alishow объединить две последовательные строки awk sed

Например, у меня есть данные, как показано ниже:

abcd 
12:12:12:12:12:12:12:12 
efgh001_01 
45:45:45:45:45:45:45:45 
ijkl7464746 
78:78:78:78:78:78:78:78 

и мне нужно вывод, как показано ниже:

abcd 12:12:12:12:12:12:12:12 
efgh001_01 45:45:45:45:45:45:45:45 
ijkl7464746 78:78:78:78:78:78:78:78 

Запуск это почти работает, но мне нужно пространство или вкладки:

awk '!(NR%2){print$0p}{p=$0}' 

ответ

1

Вы почти находитесь:

awk '(NR % 2 == 0) {print p, $0} {p = $0}' 
+1

или 'AWK '' (NR% 2) {печати $ 0" «р} {р = $ 0}! – core1024

+0

Так близко ... cat ali | awk '(NR% 2 == 0) {print p, $ 0} {p = $ 0}' AIT001 10: 00: 00: 00: c9: 82: 4c: f2 AIT004 21: 00: 00: e0: 8b: 91:35:14 AIXNIM_A 10: 00: 00: 00: c9: 31: 3a: ef AMS1000_CTL1_B 50: 06: 0e: 80: 10: 09: c5: 35 AMS2500PROD_CL0A_EXTERNAL 50: 06: 0e: 80: 10 : 0a: d6: a0 AMS2500PROD_CL1A_EXTERNAL 50: 06: 0e: 80: 10: 0a: d6: a8 C1B01 21: 00: 00: 09: 6b: 36: d0: 7a C1B02 21: 00: 00: 09: 6b : 36: ba: c8 C1B04 21: 00: 00: 09: 6b: 36: ba: ea –

+0

Я думаю, что проблема у меня возникает, когда я запускаю alishow на своих коммутаторах. Я получаю следующее: AIT001 10:00:00 : 00: c9: 82: 4c: f2 AIT004 21: 00: 00: e0: 8b: 91: 35: 14 AIXNIM_A 10: 00: 00: 00: c9: 31: 3a: ef Если я выполняю od -a на th e file, я вижу комбинацию: –

1

С СЭД вы можете сделать это следующим образом:

sed -n 'N;s/\n/ /p' file 

где:

  • N читает следующую строку
  • s заменяет символ новой строки с отступом, чтобы присоединиться к обеим линиям правильно
  • p распечатать результат
0

Это может работать для вас:

sed '$!N;s/\n/ /' file 

или это:

paste -sd' \n' file 
Смежные вопросы