2016-05-31 2 views
-1

Я хочу, чтобы объединить две строки из файла CSV:Объединение двух линий с Баш

x,,x 
,x, 

, чтобы получить:

x,x,x 

Можете ли вы мне помочь?

Edit: У меня есть много сочетания х (х встречаемости ,, или, х, х ...)

Я дам вам другой пример. Первый столбец файла содержит имя дистрибутива linux, второй столбец - команду, если в третьем столбце существует «x», это означает, что команда доступна в centos 5, если в четвертом столбце существует «x», это означает, что команда находится в centos 6 и если «х» в последнем поле означает, что имеется в CentOS 7.

centos,ls,,,x 
centos,ls,x,x, 

А теперь я хочу иметь одну запись, которая будет обобщать информацию о команде.

+0

Кроме того, это файл, содержащий только две строки? Что отделяет каждую запись? – sjsam

+0

Файл содержит много строк с разным расположением «x» в строке, но я хочу сравнить сразу две строки. – user3461823

+0

Было бы полезно увидеть больший кусок ожидаемого ввода/вывода вместо двух строк. –

ответ

1

Попробуйте это:

sed ':a;$!N;s/,$//;s/^,//;s/\n//g;ta;s/,,*/,/g' file 
+0

Спасибо Kenavoz это работает очень хорошо! – user3461823

+0

Этот скрипт вообще не объединяется. –

+1

@sjsam, вы правы, я не пробовал с кодом примера редактирования. Я обновил. – SLePort

Смежные вопросы