удалить пустые строки из сценария оболочки текстового файла

У меня есть набор выходных файлов, и некоторые из них приведены ниже:

133 0.00295 nurse merit respect muslim 
134 0.00292 high dangerous reassure full 
135 0.00048 
136 0.0039  experience darren  
137 0.00097 _ _param_ui_control_scripts_save _param_pattern_value 
138 0.00292 find director

И я хочу получить следующий файл:

133 0.00295 nurse merit respect muslim 
134 0.00292 high dangerous reassure full 
136 0.0039  experience darren  
137 0.00097 _ _param_ui_control_scripts_save _param_pattern_value 
138 0.00292 find director

Просто хочу удалить эту конкретную строку, если после второго столбца ничего нет. как я могу это сделать, я новичок в сценариях оболочки?

возможно модификация этой команды? sed '/^$/d'


person samsamara    schedule 17.11.2015    source источник


Ответы (2)


Если столбцы разделены пробелами, как насчет проверки того, что строки содержат более двух полей? Поскольку NF хранит это значение, вы можете просто сказать:

awk 'NF>2' file

Для вашего ввода он возвращает:

133 0.00295 nurse merit respect muslim 
134 0.00292 high dangerous reassure full 
136 0.0039  experience darren  
137 0.00097 _ _param_ui_control_scripts_save _param_pattern_value 
138 0.00292 find director
person fedorqui 'SO stop harming'    schedule 17.11.2015

Просто для удовольствия я использовал sed, поскольку OP начался с и сохранил подробное форматирование решения на случай, если точный макет файла журнала может сыграть роль при выборе строк для удаления. Здесь регулярное выражение ищет начало строки, за которым следует 0 или более чисел, за которым следует пробел, за которым следует ноль или более чисел, за которым следует буквальная точка, за которой следует ноль или более чисел, ноль или более пробелов, затем конец строку и удаляет их.

sed '/^[0-9]* [0-9]*\.[0-9]* *$/d' x.log > x_modded.log

Интересно, что в моей версии bash для Ubuntu я не мог использовать сокращение \d для цифры и знак плюс для одного или нескольких чисел. Похоже, пришло время сделать некоторые обновления. :-/

person Gary_W    schedule 17.11.2015