#linux #ubuntu #bash
Подскажите, как решить проблему на bash командой sed есть файлик с содержанием: бла бла бла ... /*033cf*/ @include "\x2fhom\x65/mg\x6etep\x6co/m\x67nte\x70lo.\x72u/d\x6fcs/\x6dodu\x6ces/\x6dod_\x65xt_\x6denu\x6dati\x63/js\x2ffav\x69con\x5fd38\x3368.\x69co"; /*033cf*/ ... бла бла бла Задача удалить все, начинающееся с @include "\x2 и заканчивающиеся ;
Ответы
Ответ 1
Если не принципиально использование sed, предлагаю вариант с grep: grep -v '^@include\ "\\x2.*;$' filename grep покажет файл filename, а -v удалит строки, начинающиеся с @include "\x2 и заканчивающиеся ;Ответ 2
удалить все строки, содержащие фрагмент1, а затем фрагмент2: $ sed -i '/фрагмент1.*фрагмент2/d' файл удалить все строки, начинающиеся с фрагмент1 и заканчивающиеся на фрагмент2 (^ — привязка к началу строки, $ — к концу): $ sed -i '/^фрагмент1.*фрагмент2$/d' файл удалить только части строк, начиная с фрагмент1 и заканчивающиеся на фрагмент2: $ sed -i 's/фрагмент1.*фрагмент2//' файл если внутри фрагментов встречаются символы / или \, перед ними надо добавить символ \.
Комментариев нет:
Отправить комментарий