Posted on
Questions and Answers

Use `pr` to format text into columns with custom headers

Author
  • User
    Linux Bash
    Posts by this author
    Posts by this author

Formatting Text into Columns Using pr Command in Linux Bash

Introduction

When working with text data in a Linux environment, understanding how to effectively format and present your data is essential. The pr command in Unix/Linux is a powerful tool designed for precisely this purpose. It can transform simple text into a neatly organized set of columns, making it far more readable and suitable for presentation. In this blog post, we will explore how to use pr to create multi-columnar output with custom headers, enhancing the readability of your data.

Q&A: Using the pr Command with Custom Headers

Q1: What is the pr command in Linux?

A1: The pr command in Linux is a text formatting utility primarily used for preparing files for printing. It allows users to format plain text in a variety of ways, such as pagination, multi-column output, custom headers and footers, and double-spacing.

Q2: How can you use pr to format text into multiple columns?

A2: To format text into multiple columns using pr, you can use the -column option. For instance, pr -2 formats the text into two columns. You can adjust the number to create more or fewer columns depending on your needs.

Q3: Can you add custom headers when formatting with pr?

A3: Yes, pr allows the addition of custom headers. You use the -h option followed by the header text in quotes. For example, pr -h "My Custom Header" will print "My Custom Header" at the top of each page.

Practical Examples

Let's explore a few simple cases to demonstrate these concepts.

Example 1: Basic Multi-Column Format

Imagine you have a list of items in a file called items.txt. You can use pr to format this list into three columns with the command:

pr -3 items.txt

Example 2: Adding a Custom Header

To add a custom header to the formatted output, modify the command like this:

pr -3 -h "Inventory List" items.txt

Executable Script: Formatting a Sample Text File

The following script demonstrates the capability of pr by creating a sample text file, then formatting it into two columns with a custom header "Shopping List".

#!/bin/bash

# Create a sample text file
echo -e "Milk\nBread\nEggs\nCheese\nButter\nJam" > groceries.txt

# Format the text file into two columns and add a custom header
pr -2 -h "Shopping List" groceries.txt

# Clean up the created file
rm groceries.txt

To run this script: 1. Save the script in a file, say format_groceries.sh. 2. Make the script executable with chmod +x format_groceries.sh. 3. Run the script by typing ./format_groceries.sh in your terminal.

Summary Conclusion

The pr command is a highly versatile tool for text manipulation in Unix/Linux systems, particularly useful for preparing files for print or organizing content in a readable format. By utilizing options like multiple columns and custom headers, pr enhances data presentation, making it an indispensable tool in the arsenal of system administrators and power users alike. Using the tips and script provided, you can begin integrating pr into your regular workflow, significantly improving the presentation and readability of your textual data.

Further Reading

For those interested in further exploring command-line text formatting and related commands in Linux, the following resources might be of help:

  • GNU Core Utilities - pr Command Overview: Explore the complete manual for the pr command. GNU 'pr' Manual

  • Advanced Bash-Scripting Guide: Offers in-depth insights into bash scripting, including text formatting. Advanced Bash-Scripting Guide

  • Linux Command Line Tips - Text Manipulation: A collection of tips for manipulating text through the command line. Text Manipulation Tips

  • Using awk and sed for Text Processing: Complement your knowledge of pr with advanced text processing using awk and sed. Awk and Sed Text Processing

  • Print Files Beautifully on Linux: Understand more about the pr command and other print formatting tools. Print Formatting in Linux