Парча алишоу объединяет две последовательные линии awk sed - PullRequest
1 голос
/ 15 февраля 2012

Как бы вы хотели объединить две строки, используя 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}'

Ответы [ 3 ]

1 голос
/ 15 февраля 2012

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

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

где:

  • N читает следующую строку
  • s заменяет символ новой строки пробелом для правильного объединения обеих строк
  • p печатает результат
1 голос
/ 15 февраля 2012

Ты почти там:

awk '(NR % 2 == 0) {print p, $0} {p = $0}'
0 голосов
/ 15 февраля 2012

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

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

или это:

paste -sd' \n' file
...