regexp and delete

Тема в разделе "WASM.UNIX", создана пользователем wsd, 16 май 2010.

  1. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    может кто нарисовать скриптик на Bash ( не используя Perl)
    который удаляет строки из файла, содержащии заданный паттерн?
     
  2. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    Код (Text):
    1. egrep -v "$pattern" file >file.tmp
    2. mv file.tmp file.txt
    Если хочется обойтись без промежуточного файла, то думаю не обойтись без `sed -i'.
     
  3. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    r90
    спасибо!
    и если не трудно, разверни тему "то думаю не обойтись без `sed -i'"

    у меня по басшу толмуд на 900 листов, и справочник комманд линукса на около 600 комманд,
    пока в этом освоишся... а скрипт надо сейчас, спасибо что помог :)
     
  4. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    Есть команда -- sed, которая позволяет обрабатывать регекспами входной поток. У sed есть несколько разных команд, я знаю лишь одну -- s, -- самую полезная. Но вообще отдельные извращенцы умудряются писать скрипты на sed. И я думаю, что удалить строку при совпадении можно. Кроме того у sed есть опция -i, которая говорит sed'у чтобы он все преобразования проводил in-place, то есть если `sed -i' натравить на файл, то файл будет изменён.
    Откуда 600 команд? За основу взяли `ls /usr/bin' в системе, в которую установили всё, что нашли на sf.net?
    Полистай info coreutils. Там расписаны основные утилитки, причём раскиданы по тематике. Надо раз пролистать, чтобы представлять, какие утилитки бывают. А потом, при необходимости, можно найти и почитать внимательно.
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    sed -e '/regexp/d' /path/to/my/test/file >outputfile
     
  6. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    r90
    а там всё подряд, и кореутил и разные гуи побрекушки
    Booster
    спасибо!
     
  7. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    echo -en `awk '{ if($0 ~ /regexp/) print $0 "\\\\n"; }' /infile` >/infile
     
  8. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    mrcrown
    спс попробую
     
  9. rdtsc

    rdtsc Параллелепипедов Артем

    Публикаций:
    0
    Регистрация:
    10 мар 2009
    Сообщения:
    180
    Адрес:
    Москва
    sed -i -e "/Ваш паттерн/d" file