linux cut: invalid byte, character or field list Try 'cut --help' for more information.(示例代

Posted rocky-fang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux cut: invalid byte, character or field list Try 'cut --help' for more information.(示例代相关的知识,希望对你有一定的参考价值。

1. 概述

centos执行简单shell 脚本 报错

cut: invalid byte, character or field list
Try ‘cut --help‘ for more information.

2. 代码

  vim userid.sh

#!/bin/bash
#Program
#       Use id, finger command to check system accounts information.
#History
#2015/07/17 logan first release
PATH=/bin:$PATH
export PATH

users=$(cut -d : -fl /etc/passwd)#注意这行!!!!!!!!!!!!!
for username in ${users}
do
        id ${username}
done

3. 解决问题

   代码中cut命令 后跟的选项及参数有误 应该是数字1而不是字母l

4. cut 命令学习请参考 https://linuxconfig.org/learning-linux-commands-cut

以下为节选

Frequently used options

Without too much talk lets 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
Lets see how this works in practice.

Cut by Character

In the following examples are rather self-explanatory. We used cuts -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.(示例代的主要内容,如果未能解决你的问题,请参考以下文章

Linux-cut命令(22)

Linux里面cut命令作用是啥?

Linux cut命令

fdisk添加分区引起的Linux Error: 22: Invalid argument

编码问题Invalid byte 3 of 3-byte UTF-8 sequence.

[字符编码]Invalid byte 1 of 1-byte UTF-8 sequence终极解决方案