
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