텍스트 파일에서 https 문자 제거

텍스트 파일에서 https 문자 제거

txt 파일에서 http와 https를 모두 제거해야 합니다.

이와 같이:

http://ac.tecnicasdeinvasao.com
http://go.tecnicasdeinvasao.com
http://lp.tecnicasdeinvasao.com
https://ac.tecnicasdeinvasao.com
http://secreto.tecnicasdeinvasao.com
https://go.tecnicasdeinvasao.com
https://lp.tecnicasdeinvasao.com
https://secreto.tecnicasdeinvasao.com

도착하다

ac.tecnicasdeinvasao.com
go.tecnicasdeinvasao.com
lp.tecnicasdeinvasao.com
ac.tecnicasdeinvasao.com
secreto.tecnicasdeinvasao.com
go.tecnicasdeinvasao.com
lp.tecnicasdeinvasao.com
secreto.tecnicasdeinvasao.com

sed를 사용해 보았지만 성공하지 못했습니다.

답변1

나는 그것을 선호 awk하므로 sed내가 하는 일은 다음과 같습니다.

awk사용자 정의를 정의할 수 있습니다.필드 구분 기호, 이는 문제를 매우 간단하게 만듭니다.

전체 URL이 포함된 파일이 이라고 가정하면 tstfile.txt다음 명령문은필드 구분 기호( -F)를 //다음과 같이 두 번째 필드( $2)를 인쇄합니다.

$ awk -F'//' '{print $2}' tstfile.txt
ac.tecnicasdeinvasao.com
go.tecnicasdeinvasao.com
lp.tecnicasdeinvasao.com
ac.tecnicasdeinvasao.com
secreto.tecnicasdeinvasao.com
go.tecnicasdeinvasao.com
lp.tecnicasdeinvasao.com
secreto.tecnicasdeinvasao.com

결과를 파일로 저장하려면 리디렉션을 사용할 수 있습니다 >somefile.txt.

배포판에서 GNU 버전 awk(일명 ) 을 사용하는 경우 gawk선택적으로 입력 파일을 업데이트할 수 있습니다.제자리에:

$ awk -i inplace -F'//' '{print $2}' tstfile.txt
$

이제 콘텐츠는 tstfile.txt위에 표시된 것과 정확히 같으므로 최종 목표에 따라 한두 단계를 절약할 수 있습니다. 원본 파일을 다른 파일 이름으로 저장하는 등의 기타 옵션은 다음을 참조하세요.이 답변.

답변2

당신이 sed를 사용하여 요청했기 때문에

그리고sed더 쉽게 읽을 수 있습니다:

sed  -E 's/http.+[/]//'

그리고sed작성하는 것이 더 쉽습니다.

sed -E 's/http.+\///'

둘 다 같은 일을 합니다.sed백플러시로 읽기가 /select/replace/어렵기 때문에 사용하는 형식입니다 .\

  • -E"최신" 버전의 정규식을 사용하고 있습니다.
  • s찾기 및 바꾸기에스트린
  • .+두 가지 의미가 있습니다. .점은 모든 문자를 나타냅니다. 이 경우 s와 +기호는 뒤에 오는 모든 것을 선택하는 데 사용됩니다..
  • 정규식 세계에서 문자가 특별한 의미를 갖는 경우 일반적으로 \역효과를 사용하여 문자를 이스케이프 처리해야 합니다. 이 경우에는 말해야 합니다.sed마지막 것까지 모든 것을 선택하므로 /이렇게 이스케이프해야 \/하지만 읽기가 더 어렵고 \///마지막 것은 형식에서 나온 것이므로 대괄호를 사용하여 이스케이프할 수도 있습니다. //선택한 것을 제거하고 싶기 때문에 무엇을 쓰지도 않습니다. >/select/replace/[/]//

왜냐하면 모든 것은 다음과 같이 시작되기 때문입니다.시간(동일합니다) 더 짧게 만들 수 있습니다

sed -E 's/.+\///'  
sed -E 's/.+[/]//'

이것은 --> 텍스트의 처음부터 마지막까지 모든 것을 선택한다는 것을 의미합니다 /-->whateverGoesHere/

답변3

이 시도:

awk '{sub(/https?:\/\//,"");print}' file.txt > outfile.txt

awk입력 라인을 반복하면서 각 라인에서 프로그램을 실행합니다. 일치시킬 정규식을 지정하지 않았으므로 중괄호 안의 코드가 모든 줄에서 실행됩니다. 이 sub함수는 슬래시 사이의 정규식을 일치시키고 이를 따옴표로 묶은 빈 문자열로 바꿉니다. 정규 표현식의 물음표로 인해 "s"가 선택 사항이 됩니다.

관련 정보