다음과 같은 링크가 많은 파일이 있습니다.
http://example.com/mall/mall/detail3.jsp?proID=2114280
http://example.com/mall/member/member/bookshelves/add.jsp?proID=3354136&productName=something
http://example.com/mall/bestbookTW//mall/detail3.jsp?proID=3435839&c=532166&id=954325
나는 그것이 다음과 같이 보이기를 원합니다 :
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
sed, grep 또는 awk를 사용하여 이 작업을 어떻게 수행할 수 있나요?
답변1
또한 시도
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
답변2
떨어져 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
아이디어는 줄의 =
다음 &
또는 끝( $
) 까지 a 및 모든 후속 문자열을 바꾸는 것입니다 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