次のようなリンクが多いファイルがあります。
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