Как удалить строку, которая содержит специальные символы из многих файлов - PullRequest
0 голосов
/ 20 марта 2019

Мне нужно удалить (заменить пустым) строку из всех файлов в каталоге и подкаталогах.

Однако эта строка содержит специальные символы, такие как & ?. <> / (это URL)! Я попытался с Sed и с RPL безуспешно: ни один способ избежать символов. ex строки, которая будет изменена

<script src='https://test.com?type=in2&frm=scr&'></script>

При попытке с

 rpl " <script src='https://test.com?type=in2&frm=scr&'></script>" "" index.php

Я получил ошибку; NameError: имя 'raw_input' не определено

Мне просто нужно знать, как избежать этих '/?.& символов в sed из rpl

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

это должно УДАЛИТЬ всю строку сценария.

Используйте grep с -v, затем.

$ cat <<'EOF' >/tmp/test.txt
a
<script src='https://test.com?type=in2&frm=scr&'></script>
b
EOF
$ grep -x -v "<script src='https://test.com?type=in2&frm=scr&'></script>" /tmp/test.txt
a
b
0 голосов
/ 20 марта 2019

Используйте find с sed:

find /dir/*  -exec sed -i 's/&//g;s/\?//g;s/\<//g;s/\>//g;s/\///g' {} +

, чтобы изменить строку:

grep -v "<script src='https://test.com?type=in2&frm=scr&'></script>" file > newfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...