文档章节

shell特殊符号、cut、sort、uniq、wc、tee、tr、split命令

h
 hhpuppy
发布于 2018/10/16 07:22
字数 1506
阅读 23
收藏 0

10月15日任务

8.10 shell特殊符号cut命令

8.11 sort_wc_uniq命令

8.12 tee_tr_split命令

8.13 shell特殊符号下

cut 命令

cut作用:截取字符串

用法如下:cat /etc/passwd |head -2 |cut -d ":" -f 1,2,4

  • 在管道符后面进行截取前面命令的输出。

  • cut -d " " 指定分割条件,比如 ":" ,就是以:进行分割。每到一个:就是一段。

  • -f 是指定截取哪一段。后面跟数字几,就是截取几段。如果想1到4段都要。就是-f 1-4

[root@localhost ~]# cat /etc/passwd |head -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1
root
bin
[root@localhost ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
root:x
bin:x
[root@localhost ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2,4
root:x:0
bin:x:1

  • 还有一种用法是 : -c,指定截取第几位,比如截取etc/passwd 的第四位。
[root@localhost ~]# cat /etc/passwd |head -2 |cut -c 4
t
:

排序命令: sort

用法: sort 加想要查看的文件

排序方式:没有环境变量影响的话,默认按照ASCLL码排序。

Linux sort命令的几个细节问题(sort并未按ASCII排序)https://blog.csdn.net/zenghui08/article/details/7938975

  • 新建一个文本,cat内容如下:
[root@localhost ~]# cat 1.txt
43
35
67
907890
hrshs
hsga
agsfh
.,12125
43
&%#@
^$%$
@%#

  • 用sort进行排序后内容如下:
[root@localhost ~]# sort 1.txt 
^$%$
@%#
&%#@
.,12125
35
43
43
67
907890
agsfh
hrshs
hsga

sort -n 以数字进行排序,其他数字以外的字符都当作为0,排在最前面。

[root@localhost ~]# sort -n 1.txt 
^$%$
@%#
&%#@
.,12125
agsfh
hrshs
hsga
35
43
43
67
907890

sort -r 反序显示

sort -t 分隔符,指定段排序(少用)

  • -t 用法 :sort -t 指定分隔符 -kn1,n2

wc统计命令

  • wc -l 统计行数
[root@localhost ~]# wc -l 1.txt 
12 1.txt

  • wc -m 统计字符数(包括换行符$)
[root@localhost ~]# wc -m 1.txt 
58 1.txt

  • wc -w 统计词数
[root@localhost ~]# wc -w 1.txt 
12 1.txt

uniq 去重复

  • 新建2.txt进行实验。
[root@localhost ~]# cat 2.txt 
1111
111
1111
1111
2222
2222
2222
3333
3333
3333
4
5
[root@localhost ~]# unip 2.txt 
-bash: unip: 未找到命令
[root@localhost ~]# uniq 2.txt 
1111
111
1111
2222
3333
4
5

结果发现是只有相邻的重复项才会去重,所以在去重的时候最好先排序。

[root@localhost ~]# sort 2.txt |uniq
111
1111
2222
3333
4
5
[root@localhost ~]# sort 2.txt |uniq -c
      1 111
      3 1111
      3 2222
      3 3333
      1 4
      1 5
[root@localhost ~]# 

tee 和 >类似,重定向的同时还在屏幕显示(需要在前面加上管道符)

  • 用法如下:
[root@localhost ~]# sort 2.txt |uniq -c |tee a.txt
      1 111
      3 1111
      3 2222
      3 3333
      1 4
      1 5
[root@localhost ~]# cat a.txt 
      1 111
      3 1111
      3 2222
      3 3333
      1 4
      1 5

tee -a 追加并显示内容。

tr 替换字符命令。

  • 用法如下:
[root@localhost ~]# echo "aminglinux" |tr 'a' 'A'
Aminglinux

[root@localhost ~]# echo "aminglinux" |tr '[anx]' '[ANX]'
AmiNgliNuX

[root@localhost ~]# echo "aminglinux" |tr '[a-z]' '[A-Z]'
AMINGLINUX

split 切割命令

用法:split -b 100M bigfile 切割bigfile文件,以文件大小大小进行切割,每100M切割一份

  • -b选项不指定大小的话默认大小是字节。

用法:split -l 1000 bigfile 切割bigfile文件,以行数多少进行切割,每1000行切割一份

  • 先做一个大文件准备切割。
[root@localhost ~]# find /etc/ -type f -name "*conf" -exec cat {} >> aa.txt \;
[root@localhost ~]# du -sh aa.txt 
160K	aa.txt

  • 然后用split -b 切割成1k每份。切割之后ls查看。
[root@localhost ~]# split -b 1000 aa.txt 
[root@localhost ~]# ls
1.txt            xab  xah  xan  xat  xaz  xbf  xbl  xbr  xbx  xcd  xcj  xcp  xcv  xdb  xdh  xdn  xdt  xdz  xef  xel  xer  xex  xfd  xfj  xfp  xfv  xgb
2.txt            xac  xai  xao  xau  xba  xbg  xbm  xbs  xby  xce  xck  xcq  xcw  xdc  xdi  xdo  xdu  xea  xeg  xem  xes  xey  xfe  xfk  xfq  xfw  xgc
aa.txt           xad  xaj  xap  xav  xbb  xbh  xbn  xbt  xbz  xcf  xcl  xcr  xcx  xdd  xdj  xdp  xdv  xeb  xeh  xen  xet  xez  xff  xfl  xfr  xfx  xgd
anaconda-ks.cfg  xae  xak  xaq  xaw  xbc  xbi  xbo  xbu  xca  xcg  xcm  xcs  xcy  xde  xdk  xdq  xdw  xec  xei  xeo  xeu  xfa  xfg  xfm  xfs  xfy
a.txt            xaf  xal  xar  xax  xbd  xbj  xbp  xbv  xcb  xch  xcn  xct  xcz  xdf  xdl  xdr  xdx  xed  xej  xep  xev  xfb  xfh  xfn  xft  xfz
xaa              xag  xam  xas  xay  xbe  xbk  xbq  xbw  xcc  xci  xco  xcu  xda  xdg  xdm  xds  xdy  xee  xek  xeq  xew  xfc  xfi 
  • “split -b 大小 文件 切割后文件名” 指定切割后文件命前缀。
[root@localhost ~]# split -b 1000 aa.txt aaa.
[root@localhost ~]# ls
1.txt   aaa.ai  aaa.as  aaa.bc  aaa.bm  aaa.bw  aaa.cg  aaa.cq  aaa.da  aaa.dk  aaa.du  aaa.ee  aaa.eo  aaa.ey  aaa.fi  aaa.fs  aaa.gc
2.txt   aaa.aj  aaa.at  aaa.bd  aaa.bn  aaa.bx  aaa.ch  aaa.cr  aaa.db  aaa.dl  aaa.dv  aaa.ef  aaa.ep  aaa.ez  aaa.fj  aaa.ft  aaa.gd
aaa.aa  aaa.ak  aaa.au  aaa.be  aaa.bo  aaa.by  aaa.ci  aaa.cs  aaa.dc  aaa.dm  aaa.dw  aaa.eg  aaa.eq  aaa.fa  aaa.fk  aaa.fu  aa.txt
aaa.ab  aaa.al  aaa.av  aaa.bf  aaa.bp  aaa.bz  aaa.cj  aaa.ct  aaa.dd  aaa.dn  aaa.dx  aaa.eh  aaa.er  aaa.fb  aaa.fl  aaa.fv  anaconda-ks.cfg
aaa.ac  aaa.am  aaa.aw  aaa.bg  aaa.bq  aaa.ca  aaa.ck  aaa.cu  aaa.de  aaa.do  aaa.dy  aaa.ei  aaa.es  aaa.fc  aaa.fm  aaa.fw  a.txt
aaa.ad  aaa.an  aaa.ax  aaa.bh  aaa.br  aaa.cb  aaa.cl  aaa.cv  aaa.df  aaa.dp  aaa.dz  aaa.ej  aaa.et  aaa.fd  aaa.fn  aaa.fx
aaa.ae  aaa.ao  aaa.ay  aaa.bi  aaa.bs  aaa.cc  aaa.cm  aaa.cw  aaa.dg  aaa.dq  aaa.ea  aaa.ek  aaa.eu  aaa.fe  aaa.fo  aaa.fy
aaa.af  aaa.ap  aaa.az  aaa.bj  aaa.bt  aaa.cd  aaa.cn  aaa.cx  aaa.dh  aaa.dr  aaa.eb  aaa.el  aaa.ev  aaa.ff  aaa.fp  aaa.fz
aaa.ag  aaa.aq  aaa.ba  aaa.bk  aaa.bu  aaa.ce  aaa.co  aaa.cy  aaa.di  aaa.ds  aaa.ec  aaa.em  aaa.ew  aaa.fg  aaa.fq  aaa.ga
aaa.ah  aaa.ar  aaa.bb  aaa.bl  aaa.bv  aaa.cf  aaa.cp  aaa.cz  aaa.dj  aaa.dt  aaa.ed  aaa.en  aaa.ex  aaa.fh  aaa.fr  aaa.gb

shell 特殊符号

$变量前缀,!$组合,正则里面表示行尾

; 多条命令写到一行,用分号分割

~ 用户家目录,后面正则表达式表示匹配符

& 放到命令后面,会把命令丢到后台

> >> 2> 2>> &>

[] 指定字符中的一个

||和&&,用于命令之间

  • || :如果||前面的命令提示成功,||后面的命令就不会执行,如果前面命令执行不成功,才会执行||后面的命令。
[root@localhost ~]# ls 1a.txt || wc -l 1.txt
ls: 无法访问1a.txt: 没有那个文件或目录
25 1.txt
[root@localhost ~]# ls 1.txt || wc -l 1.txt
1.txt
  • &&:如果前面的命令执行成功后,才会执行后面的命令,如果前面命令错了,就不会执行后面的命令了,
[root@localhost ~]# ls 1.txt && wc -l 1.txt
1.txt
25 1.txt
[root@localhost ~]# ls 1a.txt && wc -l 1.txt
ls: 无法访问1a.txt: 没有那个文件或目录

 

© 著作权归作者所有

共有 人打赏支持
h
粉丝 0
博文 67
码字总数 57158
作品 0
合肥
私信 提问
8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee

五周第五次课 8.10 shell特殊符号cut命令 8.11 sortwcuniq命令 8.12 teetrsplit命令 8.13 shell特殊符号下 8.10 shell特殊符号cut命令 cut命令 8.11 sortwcuniq命令 sort-wc-uniq命令 特殊符...

wb_rambo123
2018/01/12
0
0
8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下

8.10 shell特殊符号cut命令 8.11 sortwcuniq命令 8.12 teetrsplit命令 8.13 shell特殊符号下 8.10 shell特殊符号cut命令 * 任意个任意字符? 任意一个字符# 注释字符 脱义字符| 管道符 几个和...

JasonYan86
2018/06/29
0
0
Linux CentOS 7 shell中的特殊字符及与管道相关的命令(cut,sort,wc,uniq,tee,tr,split)

一、 shell特殊符号cut命令 1.特殊符号 * :任意个任意字符? :任意单个字符# :注释 :转义字符| :管道符 2.几个和管道相关的命令 (1) cut cut 把文件分段cat /etc/passwd cut -d: -f 3 /etc...

fengyunshan911
2017/09/08
0
0
shell特殊符号、cut、sort、uniq、wc、tee、tr、split命令

10月15日任务 8.10 shell特殊符号cut命令 8.11 sortwcuniq命令 8.12 teetrsplit命令 8.13 shell特殊符号下 8.10 shell特殊符号cut命令 特殊符号 *任意个任意字符 ? 任意一个字符 # 注释字符...

zgxlinux
2018/10/15
0
0
linux shell基础-3

特殊符号 cut sort wc uniq tee tr split 特殊符号 * 任意个任意字符 ? 任意一个字符 注释字符 脱义字符 | 管道符 cut cut命令用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示...

arvinlinux
2017/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
7
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部