Skip to content

Cut Command in Linux with Examples

The cut command in Linux is a powerful utility that allows users to extract specific columns of data from a file or output stream. It is a command-line tool that comes pre-installed with most Linux and Unix distributions. The cut command is an essential tool for data processing and analysis, making it an indispensable tool for system administrators, developers, and data analysts.

Understanding the cut command is essential for anyone working with Linux or Unix systems. The command allows users to extract specific columns of data from a file or output stream, making it easier to process and analyze large amounts of data. The cut command can be used to extract data from a variety of file formats, including CSV, TSV, and log files. It can also be used to extract data from standard input, making it a versatile tool for data processing.


Key Takeaways

  • The cut command is a powerful utility for extracting specific columns of data from a file or output stream in Linux and Unix systems.
  • The command is essential for data processing and analysis, making it an indispensable tool for system administrators, developers, and data analysts.
  • The cut command can be used to extract data from a variety of file formats and standard input, making it a versatile tool for data processing.

Understanding the Cut Command

The cut command is a powerful tool in Linux used to extract specific sections from a file or input stream. It is particularly useful when working with large files or streams of data that contain irrelevant information.

Syntax and Options

The basic syntax of the cut command is as follows:

cut [OPTIONS] [FILE]

The available options are:

OptionDescription
-cSelects specific characters or bytes
-fSelects specific fields
-dSpecifies a custom delimiter
-sSuppresses lines without delimiters
--complementSelects everything except what is specified

Character and Byte Selection

The -c option is used to select specific characters or bytes from a file or input stream. This option takes a range of characters or bytes to select, separated by a hyphen. For example, to select the first three characters of a file, the command would be:

cut -c 1-3 FILE

Field and Delimiter Specification

The -f option is used to select specific fields from a file or input stream. This option takes a range of fields to select, separated by a hyphen. For example, to select the first and third fields of a file with a comma delimiter, the command would be:

cut -d ',' -f 1,3 FILE

The -d option is used to specify a custom delimiter. By default, cut uses the tab character as the delimiter. For example, to specify a comma as the delimiter, the command would be:

cut -d ',' FILE

The --only-delimited option is used to suppress lines that do not contain the delimiter specified by the -d option. The -s option is used to suppress lines that do not contain any delimiters at all.

Overall, the cut command is a powerful tool for extracting specific sections of data from files or input streams. With its various options and syntax, it provides a flexible and efficient way to manipulate data in Linux.

Working with Files and Standard Input

Reading from Files

The cut command in Linux can be used to extract specific columns or fields from a file. To read from a file, the user needs to specify the file name along with the column numbers that need to be extracted. For example, to extract the first and third columns from a file named data.txt, the user can use the following command:

cut -f 1,3 data.txt

This command will display the contents of the first and third columns of the data.txt file. If the file is located in the user’s home directory, the user can use the following command:

cut -f 1,3 ~/data.txt

The ~ symbol represents the user’s home directory.

Using Standard Input

In addition to reading from files, the cut command can also read from standard input. This allows the user to pipe the output of one command as input to the cut command. For example, to extract the first and third columns from the /etc/passwd file, the user can use the following command:

cat /etc/passwd | cut -f 1,3

This command will display the contents of the first and third columns of the /etc/passwd file. The cat command is used to display the contents of the file, which is then piped as input to the cut command.

It is important to note that the cut command can only extract columns from text files. If the file is not a text file, the command will not work.

Practical Usage Examples

Basic Cut Command Examples

The cut command is a powerful tool for selecting specific columns or fields from a file. Here are some basic examples of how to use it:

  • To select the first column of a file, use the following command:

    cut -f1 filename 

    This will display the contents of the first column of the file filename.

  • To select multiple columns, specify the column numbers separated by commas:cut -f1,3,5 filename

    This will display the contents of the first, third, and fifth columns of the file filename.

  • To select a range of columns, use a hyphen: cut -f2-4 filename

    This will display the contents of the second through fourth columns of the file filename.

Advanced Filtering and Processing

The cut command can also be used for more advanced filtering and processing of data. Here are some examples:

  • To select fields based on a specific delimiter, use the -d option: cut -d',' -f2 filename

    This will display the contents of the second field of the file filename, using a comma as the delimiter.

  • To select fields that do not match a specific pattern, use the -c option:cut -c1-3,5- filename

    This will display all characters except the fourth column of the file, which is excluded using the - symbol.

  • To sort the output of the cut command, use the sort command and pipe the output:

    cut -f1 filename | sort 

    This will display the contents of the first column of the file filename, sorted in alphabetical order.

  • To select fields based on a specific pattern, use the grep command and pipe the output:cut -f2 filename | grep pattern

    This will display the contents of the second column of the file filename, filtered to show only lines that contain the word “pattern”.

Overall, the cut command is a versatile tool that can be used to select and manipulate data in a variety of ways. By understanding its various options and syntax, users can quickly and easily extract the information they need from files and other sources.

Customizing Output and Sorting Results

The cut command in Linux allows users to customize the output and sort the results to suit their needs. This section will explore two ways to do this: modifying output delimiters and sorting and rearranging fields.

Modifying Output Delimiters

By default, the cut command uses a tab as the output delimiter. However, users can modify this delimiter to suit their needs. This is done using the -d option, followed by the desired delimiter.

For example, suppose a user wants to cut the first two fields of a file, with a comma as the output delimiter. They can achieve this using the following command:

cut -d',' -f1,2 file.txt

This command tells cut to use a comma as the output delimiter and cut the first two fields of file.txt.

Sorting and Rearranging Fields

The cut command also allows users to sort and rearrange the fields of the output. This is done using the -f option, followed by a comma-separated list of field numbers.

For example, suppose a user wants to cut the third and first fields of a file, sorted in descending order. They can achieve this using the following command:

cut -f3,1 --output-delimiter=',' file.txt | sort -r

This command tells cut to cut the third and first fields of file.txt, separated by a comma. The output is then piped to the sort command, which sorts the output in descending order.

In summary, the cut command in Linux provides users with the ability to customize the output and sort the results to suit their needs. By modifying the output delimiter and rearranging the fields, users can obtain the desired output from their files.

Advanced Topics and Tips

Locale and Character Encoding

The cut command can handle different character encodings and locales. The locale determines the language and cultural conventions for formatting and sorting text. The character encoding specifies how the characters are represented in binary format. By default, cut uses the user’s locale and the UTF-8 encoding, which is a widely used Unicode standard that supports multiple languages and scripts.

To specify a different locale, use the LC_ALL environment variable followed by the locale name. For example, to use the French locale, type

LC_ALL=fr_FR cut -d ";" -f 2-3 file.txt. 

This command extracts the second and third fields from a semicolon-delimited file using the French locale. Note that the delimiter and field numbers are specified as usual.

Similarly, to use a different encoding, use the LANG environment variable followed by the encoding name. For example, to use the ISO-8859-1 encoding, type

LANG=en_US.ISO-8859-1 cut -c 1-5 file.txt. 

This command extracts the first five characters from each line of a file using the ISO-8859-1 encoding. Note that the character positions are specified as usual.

Combining Cut with Other Utilities

The cut command can be combined with other utilities to perform more complex operations. For example, to extract the usernames and UIDs of all users on a Linux system, type

cut -d ":" -f 1,3 /etc/passwd | sort. 

This command uses cut to extract the first and third fields from the /etc/passwd file, which contains information about the system users. The fields are separated by colons, hence the -d ":" option. The output is then sorted alphabetically using the sort command.

Another example is to extract the process IDs (PIDs) of all instances of a certain command. For example, to find all instances of the firefox browser and extract their PIDs, type

 pgrep firefox | xargs cut -d " " -f 1. 

This command uses the pgrep command to find all PIDs of processes whose name matches firefox. The output is then piped to the xargs command, which passes each PID as an argument to cut. The delimiter is a space, hence the -d " " option, and the first field is extracted using the -f 1 option.

Overall, the cut command is a versatile tool that can be combined with other utilities to perform various text processing tasks. By using the advanced topics and tips described above, users can customize the behavior of cut to suit their specific needs.

Frequently Asked Questions

How can I extract specific fields from a text file using the cut command in Linux?

The cut command in Linux can be used to extract specific fields from a text file by specifying the delimiter and the field position. For example, to extract the first field from a text file separated by commas, you can use the following command:

cut -d ',' -f 1 filename.txt

This command specifies the delimiter as a comma (-d ‘,’), and the first field (-f 1) to be extracted from the file.

What is the syntax for specifying a delimiter in the cut command?

The syntax for specifying a delimiter in the cut command is “-d” followed by the delimiter character. For example, to specify a comma as the delimiter, you would use “-d ‘,'”.

Can you demonstrate how to use the cut command to manipulate string data in bash?

Yes, the cut command can be used to manipulate string data in bash. For example, to extract the first 5 characters from a string, you can use the following command:

echo "example string" | cut -c 1-5

This command uses the “-c” option to select the characters from position 1 to 5.

What are the options for selecting byte positions with the cut command?

The options for selecting byte positions with the cut command are “-b” and “-c”. The “-b” option selects bytes based on their position, while the “-c” option selects characters based on their position.

How do I use the cut command to split a line into columns?

To split a line into columns using the cut command, you can specify the delimiter character and the field positions. For example, to split a line separated by commas into three columns, you can use the following command:

echo "column1,column2,column3" | cut -d ',' -f 1,2,3

This command specifies the delimiter as a comma (-d ‘,’), and the first three fields (-f 1,2,3) to be extracted from the line.

In what scenarios is the cut command most effectively utilized in shell scripting?

The cut command is most effectively utilized in shell scripting when dealing with text files that require extraction of specific fields or columns. It can also be used to manipulate string data in bash and split lines into columns based on a delimiter.

Last Updated on January 14, 2024 by admin

Share this post on social

Copyright 2022 Linuxguidehq.com. All rights reserved. No part of this website may be reproduced, distributed, or transmitted in any form or by any means, including photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the copyright owner.