Table of Contents
BASH - Commands - cut - Cut using Characters
Cut a section of text based on characters.
Useful when handling large file processing tasks.
Cut a Single Character from the Input Stream
echo "cutting text from input" | cut -c 1
The above command cuts the first character from the standard input and displays it in the terminal.
In this case, it is “c“.
Cut Specific Characters from the Input Stream
echo "cutting text from input" | cut -c 1,3
This command will cut only the first and third characters of the input string and show them.
Remember not to exceed the character limit of your string.
Cut a Range of Characters from the Input Stream
echo "cutting text from input" | cut -c 1-12
Cuts characters from the first position to the twelfth position.
The result will be “cutting text“.
Cut a Single Character from a Text file
cut -c 1 test.txt
Displays only the first characters of each of the five rows of our file test.txt.
It is equivalent to the command
cat test.txt | cut -c 1
and provides the same result as we would get when using the byte flag.
Cut Specific Characters from the a File
cut -c 7,10 test.txt
Cuts only the seventh and tenth characters of each five rows.
You can specify any character positions as long as they fall within the range of available characters.
Cut a Range of Characters a Text File
cut -c 1-12 test.txt
Outputs the first one to twelfth characters of each line in the test.txt file.
The cut command in Unix behaves the same when cutting a range of characters and range of bytes.
Cut from a Specific Character to the End of the Input Stream
echo "cutting text from input" | cut -c 5-
The above cut command will cut the text starting from the fifth byte to the end of the string.
It can be beneficial when you need to cut from a specified character position until the end of the input stream.
Simply change the value after b while keeping the trailing – on.
Cut from a Specific Character to the End of the File
cut -c 5- test.txt
This command will start cutting each of the five rows of the test.txt file from their fifth character position and will finish after reaching the end of every line.
The trailing hyphen(-) is mandatory for this kind of operation.
Cut a Specified Amount of Characters Starting from beginning of a string
echo "cutting text from input" | cut -c -5
This command will only cut the first five character positions of our input.
Remember to add the preceding hyphen(-) else the output will not be the same as you expect.
Cut from the First Character to a Specified Position from a File
cut -c -5 test.txt
This cut command in Unix will cut the first five characters of each line from the file test.txt.
Notice how the hyphen(-) is being used for the commands 21-24 in this list.
Cut the First few Characters in Alphabetical Order
cut -c 1-5 test.txt | sort
Cuts the first five bytes of each row alphabetically.
The sort command doesn’t require any options when sorting alphabetically.
Cut the First few Characters in Reverse Order
cut -c 1-5 test.txt | sort -r
Cuts the first five characters from each row and will show them after sorting in reverse.
Character Cuts
Cut a single character
cut -c 3 abcdef
returns:
c
Cut a range of characters
A range must be provided in each case which consists of one of N, N-M, N-(N to last) or -M (first to M)
cut -c 2-4 abcdef
Press CTRL+D to stop inputting
returns:
bcd
Cut a variety of characters
cut -c 2,4,7 alongtext
returns:
lne
Cut characters up to a specific position
cut -c -2 abcdef
returns:
ab
Cut characters from a specific position
cut -c 2- abcdef
returns:
bcdef
Cut various characters
cut -c 1,6-9,16- alongtextwithnospaces
returns:
atextspaces