Blog Logo

04-Jan-2024 ~ 2 min read

How to quickly slugify a phrase in terminal


Slugifying a phrase involves transforming it into a URL-friendly format, often for use in web applications or file naming. In this guide, we’ll explore a quick and convenient way to slugify a phrase using the terminal.

Table of Contents

1. Introduction

Slugification is a common task in web development and content management systems. It involves converting a human-readable phrase into a format suitable for URLs or filenames. This typically means replacing spaces with hyphens, removing special characters, and converting to lowercase.

2. Using sed for Slugification

The sed (stream editor) command is a powerful tool for text processing. We can use it to perform slugification on a given phrase. Open your terminal and run the following command:

echo "Your Phrase Here" | sed -E 's/[^a-zA-Z0-9]+/-/g' | tr A-Z a-z

Replace “Your Phrase Here” with the actual phrase you want to slugify.

Explanation of the sed command:

  • s/[^a-zA-Z0-9]+/-/g: Replace one or more characters that are not alphanumeric with a hyphen.
  • tr A-Z a-z: Convert the result to lowercase.

3. Creating a Bash Function

To make the process even more convenient, you can create a bash function. Open your terminal and run:

slugify() {
  echo "$1" | sed -E 's/[^a-zA-Z0-9]+/-/g' | tr A-Z a-z
}

Now you can use the slugify function with any phrase:

slugify "Your Phrase Here"

4. Testing the Slugification Process

Let’s test the slugification process with different phrases:

slugify "Hello World"  # Output: hello-world
slugify "Slugify Me, Please!"  # Output: slugify-me-please
slugify "123 Quick Brown Fox"  # Output: 123-quick-brown-fox

The function successfully slugifies phrases by replacing spaces with hyphens, removing special characters, and converting to lowercase.

5. Conclusion

Slugifying a phrase in the terminal is a quick and straightforward process. By using the sed command and creating a bash function, you can easily transform human-readable phrases into URL-friendly slugs. This can be particularly useful in web development projects or any scenario where you need to generate clean and standardized URLs or filenames.