多数のURLを含む出力ファイルがあるとします。 awkまたはsedを使用してURLの一部を削除して最終結果をhttp://example.com
取得http://example.com/folder/file.html
。
ベストアンサー1
最初のシングル(ダブルではない)以降のすべてのアイテムを削除するには、次の手順を実行します/
。
sed -r 's#([^/])/[^/].*#\1#'
この式はs#([^/])/[^/].*#\1#
正規表現を使用して置換を実行します([^/])/[^/].*
。これは/
、単一文字/
(および入力行の末尾にある他の文字)が後に来ないすべての文字と一致します。
置換は、一致する項目を単一文字の前の文字/
(それ以外の場合は置換)に置き換えます。
ファイルでテストしてみてください
http://example.com/folder/file.html
http://example.bar.com/folder/file.html
http://example.com:8080/folder/file.html
$ sed -r 's#([^/])/[^/].*#\1#' file
http://example.com
http://example.bar.com
http://example.com:8080
使用awk
:
$ awk -F'/' '{ print $1 "//" $3 }' file
http://example.com
http://example.bar.com
http://example.com:8080
ここでは、フィールド区切り文字として使用/
し、最初と3番目のフィールドを選択し、//
それらの間の文字列を使用して出力します。