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

関連情報