专栏首页linux运维学习linux学习第二十五篇:cut,sort,wc,uniq,tee,tr,split命令,shell特殊符号

linux学习第二十五篇:cut,sort,wc,uniq,tee,tr,split命令,shell特殊符号

  • * 任意个任意字符
  • ? 任意一个字符
  • # 注释字符
  • \ 脱义字符
  • | 管道符
  • find /etc/ -type f -name “*conf” -exec cat {} >> 1.txt \; //在/etc下查找文件名含有conf的文件并cat查看,后追加到文件1.txt中

cut命令

命令 : cut 用来截取某一个字段 语法: cut -d ‘分隔字符’ [-cf] n 这里的n是数字 -d :后面跟分隔字符,分隔字符要用单引号括起来 -c :后面接的是第几个字符 -f :后面接的是第几个区块

[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -d ':' -f 1
root
bin
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -d ':' -f 1,2
root:x
bin:x
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -d ':' -f 1-3
root:x:0
bin:x:1
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -d ':' -f 1-4
root:x:0:0
bin:x:1:1
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -c1-4
root
bin:
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -c1
r
b
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -c2
o
i

sort_wc_uniq命令

命令 : sort sort 用做排序 语法: sort [-t 分隔符] [-kn1,n2] [-nru] 这里的n1 < n2 -t 分隔符 :作用跟cut的-d一个意思 -n :使用纯数字排序 -r :反向排序 -u :去重复 -kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序 PS:如果sort不加任何选项,则从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。不会更改文件内容

命令 : wc 用于统计文档的行数、字符数、词数,常用的选项为: -l :统计行数 -w :统计词数 -m :统计字符数 PS:wc 不跟任何选项,直接跟文档,则会把行数、词数、字符数依次输出

[root@xie-02 ~]# cat -A 1.txt //-A包括隐藏的都会显示
123$
asd$
zxc$
345$
[root@xie-02 ~]# wc -l 1.txt  //统计行数 
4 1.txt
[root@xie-02 ~]# wc -w 1.txt  //统计词数
4 1.txt
[root@xie-02 ~]# wc -m 1.txt  //统计字符数
16 1.txt
[root@xie-02 ~]# wc 1.txt  //把行数、词数、字符数依次输出
 4  4 16 1.txt

命令 : uniq 去重复的行(去掉的是相邻的重复的行,如果不是相邻的即使重复也不会去重,所以需要先排序再去重) -c :统计重复的行数,并把行数写在前面 PS:不会更改文件内容

[root@xie-02 ~]# cat 1.txt 
123
asd
123
zxc
345
1
222
1
2
2
[root@xie-02 ~]# uniq 1.txt  //去掉的是相邻的重复的行
123
asd
123
zxc
345
1
222
1
2
[root@xie-02 ~]# sort 1.txt | uniq -c //先排序再去重
      2 1
      2 123
      2 2
      1 222
      1 345
      1 asd
      1 zxc

tee_tr_split命令

命令 : tee 后跟文件名,类似与重定向 “>”, 但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。 -a:加上参数a之后就相当于重定向的追加>>

[root@xie-02 ~]# echo "213asdf" | tee 1.txt 
213asdf
[root@xie-02 ~]# cat 1.txt 
213asdf

命令 : tr 替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个: -d :删除某个字符,-d 后面跟要删除的字符 -s :把重复的字符去掉 最常用的就是把小写变大写: tr ‘[a-z]’ ‘[A-Z]’

[root@xie-02 ~]# echo "linux" |tee 1.txt 
linux
[root@xie-02 ~]# cat 1.txt 
linux
[root@xie-02 ~]# echo "linux" |tr '[li]' '[LI]'
LInux
[root@xie-02 ~]# echo "linux" |tr '[a-z]' '[A-Z]'
LINUX

命令 : split 切割文档,常用选项: -b :依据大小来分割文档,直接写数字,如100则默认是字节 -l :依据行数来分割文档 PS:如果split不指定目标文件名,则会以xaa xab… 这样的文件名来存取切割后的文件。当然我们也可以指定目标文件名

[root@xie-02 ~]# du -sh 1.txt 
252K    1.txt
[root@xie-02 ~]# split -b 100k 1.txt  //以100K大小切割
[root@xie-02 ~]# ls
1.txt  anaconda-ks.cfg  xaa  xab  xac
[root@xie-02 ~]# du -sh *
252K    1.txt
4.0K    anaconda-ks.cfg
100K    xaa
100K    xab
52K     xac
[root@xie-02 ~]# split -b 100k 1.txt 123 //以100K大小切割并指定目标文件名
[root@xie-02 ~]# du -sh *
100K    123aa
100K    123ab
52K     123ac
252K    1.txt
4.0K    anaconda-ks.cfg
[root@xie-02 ~]# split -l 1000 1.txt  //依据行数切割
[root@xie-02 ~]# wc -l *
  6481 1.txt
    51 anaconda-ks.cfg
  1000 xaa
  1000 xab
  1000 xac
  1000 xad
  1000 xae
  1000 xaf
   481 xag
 13013 总用量

shell特殊符号

  1. $ 变量前缀,$组合,正则里面表示行尾
  2. ;多条命令写到一行,用分号分割
  3. ~ 用户家目录,后面正则表达式表示匹配符
  4. & 放到命令后面,会把命令丢到后台
  5. >:正确重定向 >>:追加正确重定向 2>:错误重定向 2>>:追加错误重定向 &>:正确错误重定向
  6. [ ] 指定字符中的一个,[0-9],[a-zA-Z],[abc]
  7. || (或者)和 &&(与) ,用于命令之间 ||:前面的命令执行成功了后面的命令就不会执行,前面的执行不成功后面命令才会执行。 &&:只有前面的命令执行成功了后面的命令才会执行。

相关测验题目:http://ask.apelearn.com/question/5437 扩展 1. source exec 区别 http://alsww.blog.51cto.com/2001924/1113112 2. Linux特殊符号大全http://ask.apelearn.com/question/7720 3. sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux学习第八篇:文件或目录权限chmod,更改所有者和所属组chown,umask,隐藏权限lsattr_chattr

    文件或目录权限chmod 三种基本权限 R           读         数值表示为4 W           写         数值表示为2 X ...

    用户1215343
  • linux学习第二十三篇:shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向

    shell介绍 什么是shell, shell是一个命令解释器,提供用户和机器之间的交互。支持特定语法,比如逻辑判断、循环。每个用户都可以有自己特定的shel...

    用户1215343
  • linux学习第十九篇:压缩介绍,gzip,bzip2,xz压缩工具

    file命令可查看文件是压缩文件或者test文件等,如file 1.txt 可查看1.txt是什么类型的文件 linux压缩打包介绍 在windows下我们接...

    用户1215343
  • linux学习第八篇:文件或目录权限chmod,更改所有者和所属组chown,umask,隐藏权限lsattr_chattr

    文件或目录权限chmod 三种基本权限 R           读         数值表示为4 W           写         数值表示为2 X ...

    用户1215343
  • glob

    通配符 # touch a2b # ll a?b -rw-r--r-- 1 root root 0 Mar 2 23:24 a2b # ll a[0-9]b ...

    零月
  • Java 动态字节码技术

    初学 Java 时,我对 IDEA 的 Debug 非常好奇,不止是它能查看断点的上下文环境,更神奇的是我可以在断点处使用它的 Evaluate 功能直接执行某...

    枕边书
  • 使用Jekyll显示Jupyter笔记本

    Jekyll是一个用Ruby编写的静态站点生成器,支持博客并与Github页面整合。因为Github只负责托管,这种设置使数据分析共享和可视化变得简单。Jeky...

    eru
  • 依然是广州!景驰无人车开启常态化试运营,即日起可预约试乘

    李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还是广州! 另一家中国无人车公司景驰科技也传来常态化试运营消息。 1月30日在广州生物岛,景驰科技...

    量子位
  • Python学习系列:使用pyqt5搭建简单图书管理系统(2)

    在上一篇文章里我们简单的说了一下图书管理系统的设计思路,这一篇文章我们将设计一下此系统的数据库.

    云时之间
  • MySQL使用规范手册,程序员必知必会

    一个平台或系统随着时间的推移和用户量的增多,数据库操作往往会变慢;而在Java应用开发中数据库更是尤为重要,绝大多数情况下数据库的性能决定了程序的性能,如若前期...

    挨踢小子部落阁

扫码关注云+社区

领取腾讯云代金券