Languages
[Edit]
EN

Bash - get path name from given URL

0 points
Created by:
Theodora-Battle
528

In this article, we would like to show you how to get path name from given URL in Bash.

Quick solution:

echo 'https://dirask.com/about' | awk 'match($0,/^[a-z]+:\/\/(www\.)?[^:?#/]+(\/[^?#]*)?/,g){print g[2]}'

 

Practical example

In this solution, we use match() function that lets to use regular expression with groups support.

#!/bin/bash

echo 'https://dirask.com/about' | awk 'match($0,/^[a-z]+:\/\/(www\.)?[^:?#/]+(\/[^?#]*)?/,g){print g[2]}'
echo 'https://www.dirask.com/about' | awk 'match($0,/^[a-z]+:\/\/(www\.)?[^:?#/]+(\/[^?#]*)?/,g){print g[2]}'

Output:

/about
/about

Reusable example

#!/bin/bash

function get_path() {
    echo "$1" | awk 'match($0,/^[a-z]+:\/\/(www\.)?[^:?#/]+(\/[^?#]*)?/,g){print g[2]}'
}


# Usage example 1:

get_path 'https://dirask.com/about'
get_path 'https://www.dirask.com/about'


# Usage example 2:

path_1="$(get_path 'https://dirask.com/about')"
path_2="$(get_path 'https://www.dirask.com/about')"

echo $path_1
echo $path_2

Output:

/about
/about

/about
/about

 

See also

  1. Bash - get domain name from given URL
  2. Bash - get protocol name from given URL

  3. Bash - get location origin from given URL

Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join