How to use the command "cut" (with examples)
- Osx
- December 25, 2023
Cut is a command-line utility that allows you to extract sections from files or from standard input. It is commonly used to cut out specific fields or characters from a line of text or a file. It provides various options to specify the range or delimiter to be used for cutting the data.
Use case 1: Print a specific character/field range of each line
Code:
command | cut -c|f 1|1,10|1-10|1-|-10
Motivation: This use case is helpful when you want to extract a specific character or field range from each line of input. For example, if you have a CSV file and you want to extract the first and tenth character of each line, you can use this command.
Explanation:
cut
: The command itself.-c|f 1|1,10|1-10|1-|-10
: The option-c
specifies that we want to cut characters, and the option-f
specifies that we want to cut fields. For the range, you can specify the range using multiple formats:-c
: Used to select specific characters.-f
: Used to select specific fields.1
: Specifies the first character/field.10
: Specifies the tenth character/field.1-10
: Specifies a range from the first to tenth character/field.1-
: Specifies a range from the first character/field to the end.10-
: Specifies a range from the tenth character/field to the end.|-10
: Specifies a range from the start to the tenth character/field.
Example output: Let’s say we have the following input:
Hello,World
1234567890
If we run the command echo "Hello,World" | cut -c1
, it will output:
H
If we run the command echo "Hello,World" | cut -c1,10
, it will output:
HW
If we run the command echo "Hello,World" | cut -c1-10
, it will output:
Hello,Wor
If we run the command echo "Hello,World" | cut -c1-
, it will output:
Hello,World
If we run the command echo "Hello,World" | cut -c10-
, it will output:
orld
Use case 2: Print a range of each line with a specific delimiter
Code:
command | cut -d "," -c 1
Motivation: This use case is useful when you have a file with fields separated by a specific delimiter, and you want to extract a specific range of fields from each line. For example, if you have a CSV file and you want to extract the first field from each line, you can use this command.
Explanation:
cut
: The command itself.-d ","
: Specifies the delimiter to be used. In this example, we use a comma,
as the delimiter.-c 1
: Specifies that we want to cut the first field.
Example output: Let’s say we have the following input:
Hello,World
123,456,789
If we run the command echo "Hello,World" | cut -d "," -c 1
, it will output:
Hello
If we run the command echo "123,456,789" | cut -d "," -c 1
, it will output:
123
Use case 3: Print a range of each line of a specific file
Code:
cut -c 1 path/to/file
Motivation: This use case is helpful when you want to extract a specific range of characters from each line of a file. It can be used with any type of file, including plain text files, CSV files, log files, etc.
Explanation:
cut
: The command itself.-c 1
: Specifies that we want to cut the first character.path/to/file
: Specifies the path to the file from which we want to extract the range.
Example output:
Let’s say we have a file named example.txt
with the following content:
Hello,World
1234567890
If we run the command cut -c 1 example.txt
, it will output:
H
1
Conclusion:
The cut
command is a powerful tool for extracting specific fields or characters from files or standard input. It provides various options to specify the range or delimiter to be used for cutting the data. Whether you need to extract specific fields from a CSV file or cut out a range of characters from a log file, the cut
command can be a handy tool in your command-line toolkit.