Miller를 사용하여 CSV URL 열에서 도메인 추출

Miller를 사용하여 CSV URL 열에서 도메인 추출

CSV 콘텐츠는 다음과 같습니다.

Family,URL,IP,FirstSeen
Pony,http://officeman.tk/images/admin.php,207.180.230.128,01-06-2019
Pony,http://learn.cloudience.com/ojekwaeng/yugo/admin.php,192.145.234.108,01-06-2019
Pony,http://vman23.com/ba24/admin.php,95.213.204.53,01-06-2019

URL다음을 사용하여 열을 선택할 수 있다는 것을 알고 있습니다 .

mlr --mmap --csv --skip-comments --headerless-csv-output cut -f 'URL'

Miller를 사용하여 다른 명령으로 연결하지 않고 도메인을 추출하려면 어떻게 해야 합니까?

원하는 출력:

officeman.tk
learn.cloudience.com
vman23.com

답변1

밀러의 스위스 군용 칼은놓다동사 - 전체에 대한 액세스를 제공합니다.도메인 특정 언어데이터 변환을 위해. 거기에는 여러 가지 방법이 있습니다.

  • 정규식을 사용하여 URL의 도메인 부분을 일치시키고 캡처합니다.
  • 정규식을 사용하여 선행 및 후행 구성 요소 자르기
  • URL을 구분된 문자열로 분할

예를 들어

mlr --mmap --csv --skip-comments --headerless-csv-output put -S '
  $URL =~ "https?://([^/]+)"; $Domain = "\1"
' then cut -f Domain file.csv

또는

mlr --mmap --csv --skip-comments --headerless-csv-output put -S '
  m = splitnvx($URL,"/"); $Domain = m[3]
' then cut -f Domain file.csv

답변2

다른 명령을 사용할 수 있으면 시도해 볼 수 있습니다 awk. 명령은 다음과 유사합니다.

awk -F\/ 'FNR!=1 {print $3}' input_file.csv

아이디어는 /구분 기호로 사용하고 필드 3을 인쇄하는 것 입니다.

답변3

달리기

mlr --c2n put '$m = splitnvx($URL,"/")[3]' then cut -f m input.csv

당신은 할 것

officeman.tk
learn.cloudience.com
vman23.com

관련 정보