1. Overview
CentOS Execute simple Shell pin this report wrong
Cut:invalid byte, character or field list
Try ' Cut--help ' for more information.
2. Code
Vim userid.sh
#! / bin / bash
#Program
# Use id, finger command to check system account ‘s information.
#History
# 2015/07/17 logan first release
PATH = / bin: $ PATH
export PATH
users = $ (cut -d ‘:‘ -fl / etc / passwd) #Note this line !!!!!!!!!!!!!
for username in $ {users}
do
id $ {username}
done
3. Solve the problem
The options and parameters followed by the cut command in the code are wrong, it should be the number 1 instead of the letter l
4. For cut command learning, please refer to https://linuxconfig.org/learning-linux-commands-cut
The following is an excerpt
Frequently used options
Without too much talk let ‘s start by introducing main and the most commonly used cut command line options.
-b, --bytes = LIST
Cuts the input file using list of bytes specified by this option
-c, --characters = LIST
Cuts the input file using list of characters specified by this option
-f, --fields = LIST
Cuts the input file using list of field. The default field to be used TAB. The default behavior can be overwritten by use of -d option.
-d, --delimiter = DELIMITER
Specifies a delimiter to by used as a field. As mentioned previously default field is TAB and this option overwrites this default behavior.
Using LIST
List in this case can consist of single or range of bytes, characters or fields. For example to display only second byte the list will include a single number 2.
Therefore:
2 will display only second byte, character or field counted from 1
2-5 will display all bytes, characters or fields starting from second and finishing by 5th
-3 will display all bytes, characters or fields before 4th
5- will produce all bytes, characters or fields starting with 5th
1,3,6 will display only 1st, 3rd and 6th byte, character or field
1,3- displays 1st and all bytes, characters or fields starting with 3th
Let ‘s see how this works in practice.
Cut by Character
In the following examples are rather self-explanatory. We used cut ‘s -c option to print only specific range of characters from cut.txt file.
echo cut-command> cut.txt
$ cut -c 2 cut.txt
u
$ cut -c -3 cut.txt
cut
$ cut -c 2-5 cut.txt
ut-c
$ cut -c 5- cut.txt
command
Cut By Byte
The principle behind -b (by byte) option is similar to the one described previously. We know that a single character has size of 1 byte and therefore result after executing previous commands with -b option will be exactly the same:
$ cut -b 2 cut.txt
u
$ cut -b -3 cut.txt
cut
$ cut -b 2-5 cut.txt
ut-c
$ cut -b 5- cut.txt
command
linux cut: invalid byte, character or field list Try 'cut --help' for more information.