sites.txt
아래와 같이 긴 URL이 포함된 동적 사이트가 포함 된 파일이 있습니다 .
http://onesite.com/a.php?one=1&two=2&three=3
http://anothersite.com/b.php?one=1&two=2
http://aaaandanothersite.com/a.php?one=1&two=2&three=3&four=4
모든 매개변수 값을 제거해야 하는데 출력은 다음과 같습니다.
http://onesite.com/a.php?one=&two=&three=
http://anothersite.com/b.php?one=&two=
http://aaaandanothersite.com/a.php?one=&two=&three=&four=
정규 표현식이나 단축키가 있다면 듣고 싶습니다. 하지만 이렇게 한 줄로 처리할 수 없다면 해당 사이트는 이미 for 함수에 있으므로 한 줄씩 처리할 수도 있습니다.
답변1
사용 sed
:
sed -E 's/=[^&]*(&|$)/=\1/g' sites.txt
교체 =
뒤에는 임의의 문자( \n
ewline 제외)가 따르지만 줄 끝( ) &
(0 또는 도함수)으로 끝나는 문자는 없습니다.[^&]*
&
|
$
(&|$)
그리고Just =
및 캡처된 그룹 (&|$)
과 해당 \1
역참조를 문자로 반환 &
하거나 이것이 마지막 인수임을 나타내는 아무것도 반환하지 않습니다.
답변2
Perl을 사용하면 다음과 같이 실행할 수 있습니다.
perl -ple 's/=[^&=]*/=/g' sites.txt
어디:
perl -ple exp
동등하다종결자가 없는 각 줄에 대해 print(exp(line))