2016-10-29 3 views
0

У меня есть .txt-файл с двумя строками, а отдельный, некоторые строки содержат только одну строку, поэтому я хочу удалить те, которые содержат только одну строку.awk/gawk - удалить строку, если строка 2 не существует

пример линий

линия держать,

Iamnotyours:[email protected] 

Линия для удаления,

Iamnotyours: 
+0

Из вопроса - «удалить те, которые содержат только одну строку» Из примера - «вы выбираете строку, где у вас более 1 столбца» –

+1

Когда вы говорите «строка», вы имеете в виду «столбец»? Имеет ли значение, какой столбец пуст? [edit] ваш вопрос, чтобы включить более полный ввод/вывод, показывающий все комбинации присутствия/отсутствия в каждом столбце. –

ответ

1

awk на помощь! только

$ awk -F: 'NF==2' file  

печатает линии с двумя полями

$ awk -F: 'NF>1' file 

печатает строки более одного поля. В вашем случае у вас есть разделитель, количество полей будет равно двум. Вы должны проверить, является ли второе поле пустым

$ awk -F: '$2!=""' file 
2

Учитывая Опубликованная ввода пробы все, что вам нужно:

grep -v ':$' file 

или если вы настаиваете на AWK по какой-то причине:

awk '!/:$/' file 

Если это еще не все, что вам нужно, отредактируйте свой вопрос, чтобы уточнить ваши требования.

+1

Чтобы сделать его более коротким (и удалить этот '!'): 'Awk '/:./' file'. –

+1

idk, если '' 'всегда будет там. Не много информации в вопросе! –

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