The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
sed и файлы., !*! fire002, 18-Июн-13, 18:21  [смотреть все]
Приветствую. Подскажите как лучше реализовать такую схему:
Есть директории, 1, 2, 3 и т.д с файлами list.txt в каждой директории, с содержимым в столбик.
dsadf
dfhdsdf
addgfgd
и т.д.

Необходимо sed'om заменить определенные строки, в файлах, где есть определенная строка (в любом месте файла, а не в определенной строке.)
sed '/baz/s/foo/bar/g'  -- действует только на строку.
Спасибо.

  • sed и файлы., !*! михалыч, 20:56 , 18-Июн-13 (1)
    >[оверквотинг удален]
    > Есть директории, 1, 2, 3 и т.д с файлами list.txt в каждой
    > директории, с содержимым в столбик.
    > dsadf
    > dfhdsdf
    > addgfgd
    > и т.д.
    > Необходимо sed'om заменить определенные строки, в файлах, где есть определенная строка
    > (в любом месте файла, а не в определенной строке.)
    > sed '/baz/s/foo/bar/g'  -- действует только на строку.
    > Спасибо.

    Так а разве модификатор g не говорит о том, что замена глобальная, во всех строках?

    • sed и файлы., !*! fire002, 21:07 , 18-Июн-13 (2)
      >[оверквотинг удален]
      >> dsadf
      >> dfhdsdf
      >> addgfgd
      >> и т.д.
      >> Необходимо sed'om заменить определенные строки, в файлах, где есть определенная строка
      >> (в любом месте файла, а не в определенной строке.)
      >> sed '/baz/s/foo/bar/g'  -- действует только на строку.
      >> Спасибо.
      > Так а разве модификатор g не говорит о том, что замена глобальная,
      > во всех строках?

      Мне не нужно заменять во всех строках.
      Суть в том, что если в файле есть строка, допустим
      baz
      То необходимо будет заменить строку
      foo на bar
      А если в файле нет упоминания про baz, не делать никаких замен.

      • sed и файлы., !*! pavlinux, 00:14 , 19-Июн-13 (3) +1
        >>[оверквотинг удален]

        find . -name list.txt -exec sed -e '/baz/s/foo/bar/g' -i {} \;

      • sed и файлы., !*! михалыч, 06:24 , 19-Июн-13 (4) +1
        >[оверквотинг удален]
        >>> sed '/baz/s/foo/bar/g'  -- действует только на строку.
        >>> Спасибо.
        >> Так а разве модификатор g не говорит о том, что замена глобальная,
        >> во всех строках?
        > Мне не нужно заменять во всех строках.
        > Суть в том, что если в файле есть строка, допустим
        > baz
        > То необходимо будет заменить строку
        > foo на bar
        > А если в файле нет упоминания про baz, не делать никаких замен.

        sed 's/foo/bar/g' `grep -x -l baz *`

        • sed и файлы., !*! михалыч, 21:11 , 30-Июл-13 (6)
          >[оверквотинг удален]
          >>>> Спасибо.
          >>> Так а разве модификатор g не говорит о том, что замена глобальная,
          >>> во всех строках?
          >> Мне не нужно заменять во всех строках.
          >> Суть в том, что если в файле есть строка, допустим
          >> baz
          >> То необходимо будет заменить строку
          >> foo на bar
          >> А если в файле нет упоминания про baz, не делать никаких замен.
          > sed 's/foo/bar/g' `grep -x -l baz *`

          Вот так правильно
          sed -i '' 's/foo/bar/g' `grep -l baz basedir/*/*`

  • sed и файлы., !*! Andrey Mitrofanov, 09:42 , 19-Июн-13 (5) –4 [V]
    >[оверквотинг удален]
    > Есть директории, 1, 2, 3 и т.д с файлами list.txt в каждой
    > директории, с содержимым в столбик.
    > dsadf
    > dfhdsdf
    > addgfgd
    > и т.д.
    > Необходимо sed'om заменить определенные строки, в файлах, где есть определенная строка
    > (в любом месте файла, а не в определенной строке.)
    > sed '/baz/s/foo/bar/g'  -- действует только на строку.
    > Спасибо.

    find basedir/ -type f -name list.txt|xargs -r grep -l "baz"|xargs -r sed -i 's/foo/bar/g'

  • sed и файлы., !*! LU, 21:49 , 30-Июл-13 (7)
    Брр. Строка в строке. Может, вы имели ввиду "..где есть определённое слово"?




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру