linux的cut命令用法总结

所属分类: 脚本专栏 / linux shell 阅读数: 903
收藏 0 赞 0 分享

要用到,来mark一下:

ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt 
abc
abcd
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1
a
a
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 2
b
b
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-2
ab
ab
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-3
abc
abc
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-4
abc
abcd
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-5
abc
abcd
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-6
abc
abcd
ubuntu@VM-0-15-ubuntu:~/taoge$ 

常常配合awk使用。

cut命令可以按字节,字符,域来截取字串,在某些情况下使用cut,确实很方便,下面简单总结下:

1.按字符截取:(源字串:123:456:789)

1>截取第三个字符:

echo 123:456:789 | cut -c3
3

2>截取第三到第六之间的字符:

echo 123:456:789 | cut -c3-6
3:45

3>截取前三个字符

echo 123:456:789 | cut -c-3
123

4>提取第三个及其后面的所有字符

echo 123:456:789 | cut -c3-
3:456:789

5>提取第三到第六和第八到第十间的字符

echo 123:456:789 | cut -c3-6,8-10
3:45:78

小结下

>>这个“-”比较有意思,

在inx前,表示从字串投开始,

放在inx后,表示从idx开始到字串末尾,

在两个idx之间,表示从idx1到idx2。

>>还有这个“,”可以连接我们选择的不连续的域,

比如要取第1,3,5,7个字符: 

echo 123:456:789 | cut -c1,3,5,7
1346

>>对于-b选项应该和-c选项差不多吧,就是单位不同而已(我没有像上面一样测试,只是我的理解)

对于-d选项需要配合着-f选项使用,-d是用来指定分隔符,-f用来指定提取第几个域的内容

echo 123:456:789 | cut -d : -f 3
789

cut比较小巧,在适当的场景下使用效率很高,但是它不支持正则表达式,所以在复杂的情况下还是使用awk或者sed比较好!

[xxx@~]$ cut --help

Usage: cut OPTION... [FILE]...
Print selected parts of lines from each FILE to standard output.

Mandatory arguments to long options are mandatory for short options too.
 -b, --bytes=LIST    select only these bytes
 -c, --characters=LIST  select only these characters
 -d, --delimiter=DELIM  use DELIM instead of TAB for field delimiter
 -f, --fields=LIST    select only these fields; also print any line
              that contains no delimiter character, unless
              the -s option is specified
 -n           (ignored)
   --complement    complement the set of selected bytes, characters
              or fields
 -s, --only-delimited  do not print lines not containing delimiters
   --output-delimiter=STRING use STRING as the output delimiter
              the default is to use the input delimiter
   --help   display this help and exit
   --version output version information and exit

Use one, and only one of -b, -c or -f.  Each LIST is made up of one
range, or many ranges separated by commas.  Selected input is written
in the same order that it is read, and is written exactly once.
Each range is one of:

  •   N     N'th byte, character or field, counted from 1
  •   N-    from N'th byte, character or field, to end of line
  •   N-M   from N'th to M'th (included) byte, character or field
  •   -M    from first to M'th (included) byte, character or field

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

更多精彩内容其他人还在看

linux创建用户useradd命令代码示例

本文通过代码示例给大家介绍了adduser与useradd命令二者的关系 以及使用useradd命令添加用户的方法,需要的朋友参考下吧
收藏 0 赞 0 分享

Linux 中LVS NAT 配置步骤的详解

这篇文章主要介绍了Linux 中LVS NAT 配置步骤的详解的相关资料,这里列出详细的实现步骤,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux中的内核链表实例详解

这篇文章主要介绍了Linux中的内核链表实例详解的相关资料,链表中一般都要进行初始化、插入、删除、显示、释放链表,寻找节点这几个操作,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell中特殊字符的用法总结大全

这篇文章主要给大家总结了关于Shell中特殊字符的相关资料,文中包括分好、&、#、!、$、大于号、单双引号等等一系列特殊字符的用法,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
收藏 0 赞 0 分享

Shell脚步攻略之管道重定向基础

管道是为了解决进程间通信问题而存在,它可以让两个进程之间的数据进行传递,将一个进程的输出数据传递给另一个进程作为其输入数据
收藏 0 赞 0 分享

Linux shell数组循环的实例详解

这篇文章主要介绍了Linux shell数组循环的实例详解的相关资料,这里举例说明如何实现shell数组循环,需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell内置判断语句

内置判断,成功的时候返回0,不成功返回非零。接下来通过本文重点给大家介绍linux shell内置判断语句,感兴趣的的朋友一起看看吧
收藏 0 赞 0 分享

Linux文件的归档和压缩命令

文件归档命令tar,文件归档有好多好处,方便使用易于管理,接下来通过本文给大家分享linux文件的归档和压缩命令,感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

Linux Shell中curl和wget使用代理IP的方法教程

这篇文章主要给大家介绍了关于在Linux Shell中curl和wget使用代理IP的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
收藏 0 赞 0 分享

Linux 日常常用指令及应用小结

最近在学习一些基本的Linux指令,在这里总结一下,在搭环境中常用的一些指令,熟悉这些指令就基本能够使用CentOS进行日常操作了
收藏 0 赞 0 分享
查看更多