2017-07-13 10 views
0

これまでの検索は少ししかありませんでしたが、これを行うためのエレガントな方法が見つからないようです。私は以下のようなリストを検索することができ、ドメイン名、http://などの後ろに何もないプレーンテキストの出力ファイルで終わるだけです。/入力したURL文字列のうち、ドメイン名のみを削除する

リストはこうです:

http://7wind.ru/file/Behind+the+dune/ 
http://aldersgatencsc.org/open.php?utm_source=5r2ke0ow6k&utm_medium=qqod2h9a88&utm_campaign=2d1hl1v8c5&utm_term=mz34ligqc4&utm_content=bgi71kl5oy 
http://amunow.org/test.php?utm_source=5r2ke0ow6k&utm_medium=qqod2h9a88&utm_campaign=2d1hl1v8c5&utm_term=dhxg1r4l76&utm_content=tr71txtklp 

このようなプレーンテキスト出力ファイルにしたいと思います。

7wind.ru 
aldersgatencsc.org 
amunow.org 

答えて

3

が考えるように注意してください:

$ echo "$txt" 
http://7wind.ru/file/Behind+the+dune/ 
http://aldersgatencsc.org/open.php?utm_source=5r2ke0ow6k&utm_medium=qqod2h9a88&utm_campaign=2d1hl1v8c5&utm_term=mz34ligqc4&utm_content=bgi71kl5oy 
http://amunow.org/test.php?utm_source=5r2ke0ow6k&utm_medium=qqod2h9a88&utm_campaign=2d1hl1v8c5&utm_term=dhxg1r4l76&utm_content=tr71txtklp 

あなたはcutを使用することができます。

$ echo "$txt" | cut -d'/' -f3 
7wind.ru 
aldersgatencsc.org 
amunow.org 

それとも、あなたのコンテンツがファイル内にある場合:

$ cut -d'/' -f3 file 
7wind.ru 
aldersgatencsc.org 
amunow.org 

次に、ファイルにそれをリダイレクトあなたは欲しい:

$ cut -d'/' -f3 file >new_file 
+0

ありがとうございました。これはすばらしく、短くポイントがあります。とても感謝しております。 – MitchellK

1
awk -F \/ '{ print $3 }' outputfile > newfile 

印刷/

0

試し以下awksで区切られた3番目のフィールド。

ソリューション第一:

awk '{sub(/.*\/\//,"");sub(/\/.*/,"");print}' Input_file 

ソリューション第二:

awk '{match($0,/\/.[^/]*/);print substr($0,RSTART+2,RLENGTH-2)}' Input_file 
0

これは後に何も、その後、最初のプロトコルと://を除去し、次のスラッシュを含むことによって動作します。

sed "s|.*://||; s|/.*||" url-list.txt 

ファイルを直接変更するには、-iを追加します。

0

((http|https):\/\/)?([a-zA-Z\.]+)(\/)? 

最初に一致し、第3回グループ この正規表現を試してみたが、それはあまりにも、無効なURLを検証することができます!

1
$ sed -r 's#.*//([^/]*)/.*#\1#' Input_file 
7wind.ru 
aldersgatencsc.org 
amunow.org 
関連する問題