Когда я запускал compaudit
, я получал сообщение об ошибке небезопасных каталогов из каталога плагинов oh-my-zsh
. Поэтому я изменил разрешения в каталоге плагинов :
cd /home/${usr}/.oh-my-zsh/custom/
sudo chmod -R 755./plugins
исправил мне эту проблему.
Ubuntu 16.0.4 на WSL.
А 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
Попробуйте также
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
Просто попытка Не лучший подход
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