Рекурсивный переход по ссылке и запуск команды grep на любых страницах

Так и должно быть.

/ g заменит все экземпляры foo на bar

find <Project root dir> -type f -exec sed -i "{}" -e 's/foo/bar/g' \;

Если вы хотите ограничить изменение только файлами * .py:

find <Project root dir> -type f -name "*.py" -exec sed -i "{}" -e 's/foo/bar/g' \;

Если есть экземпляры foo, который не следует заменять, можно ограничить четырьмя случаями:

  • import foo
  • from module import foo
  • def foo
  • foo (

Но не

  • damned_foo (
  • damnedfoo (
  • damned1foo (
  • damned-foo (

) Тогда команда будет выглядеть так:

foo="foo";bar="bar";find <Project root dir>  -type f -exec sed -i "{}" \
-r -e "s/[^a-zA-Z0-9_\-]$foo\(/$bar\(/g" -e "s/def $foo/def $bar/g" \
-e "s/import $foo/import $bar/g" \;
0
07.02.2019, 21:57
1 ответ

Используйте "${urls[0]}"для первого элемента массива urls, а не $urls[0].

Чтобы удалить первый элемент массива urlsи добавить массив addв конец, используйте

urls=( "${urls[@]:1}" "${add[@]}" )

Всегда цитируйте каждое расширение, даже ${#urls[@]}.

Я не очень внимательно смотрел на ваши curls и greps, но использую

printf '%s\n' "$content"

, если вы хотите быть уверены, что в данных сохранены обратные косые черты.

Связанные:

2
28.01.2020, 02:30

Теги

Похожие вопросы