сопоставить строку между двумя символами и заменить

Когда я запускал compaudit, я получал сообщение об ошибке небезопасных каталогов из каталога плагинов oh-my-zsh. Поэтому я изменил разрешения в каталоге плагинов :

.
  • cd /home/${usr}/.oh-my-zsh/custom/
  • sudo chmod -R 755./plugins

исправил мне эту проблему.

Ubuntu 16.0.4 на WSL.

0
12.01.2020, 16:02
3 ответа

А perlподход:

$ perl -pe 's/=(.+?)(&|$)/=FUZZ$2/g' file 
http://example.com/mall/mall/detail3.jsp?proID=FUZZ
http://example.com/mall/member/member/bookshelves/add.jsp?proID=FUZZ&productName=FUZZ
http://example.com/mall/bestbookTW//mall/detail3.jsp?proID=FUZZ&c=FUZZ&id=FUZZ

Идея состоит в том, чтобы заменить все строки после =и до следующего &или конца строки($)на FUZZ.

Чтобы изменить исходный файл вместо печати на стандартный вывод, используйте-i:

perl -i -pe 's/=(.+?)(&|$)/=FUZZ$2/g' file 

Как вариант, с помощьюsed:

$ sed -E 's/=([^&]*)/=FUZZ/g' file 
http://example.com/mall/mall/detail3.jsp?proID=FUZZ
http://example.com/mall/member/member/bookshelves/add.jsp?proID=FUZZ&productName=FUZZ
http://example.com/mall/bestbookTW//mall/detail3.jsp?proID=FUZZ&c=FUZZ&id=FUZZ

Снова используйте -iдля редактирования исходного файла:

sed -i -E 's/=([^&]*)/=FUZZ/g' file 

Такой же подход можно использовать и с perl:

perl -i -lpe 's/=([^&]*)/=FUZZ/g' file 
0
28.01.2020, 02:56

Попробуйте также

awk 'gsub("=[^&]*", "=FUZZ")' file 
http://example.com/mall/mall/detail3.jsp?proID=FUZZ
http://example.com/mall/member/member/bookshelves/add.jsp?proID=FUZZ&productName=FUZZ
http://example.com/mall/bestbookTW//mall/detail3.jsp?proID=FUZZ&c=FUZZ&id=FUZZ
1
28.01.2020, 02:56

Просто попытка Не лучший подход

for ((i=1;i<=3;i++));  do awk -v i="$i" 'NR==i{gsub("&","\n",$0);print $0}' o.txt| sed "s/=.*/=FUZZ/g"| sed "N;s/\n/\&/g"|sed "N;s/\n/\&/g"; done

выход

http://example.com/mall/mall/detail3.jsp?proID=FUZZ
http://example.com/mall/member/member/bookshelves/add.jsp?proID=FUZZ&productName=FUZZ
http://example.com/mall/bestbookTW//mall/detail3.jsp?proID=FUZZ&c=FUZZ&id=FUZZ
-1
28.01.2020, 02:56

Теги

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