文档章节

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

h
 hhpuppy
发布于 10/16 07:22
字数 1506
阅读 19
收藏 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
博文 46
码字总数 39632
作品 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
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
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
10/15
0
0
shell特殊符号、cut_sort_wc_uniq命令和tee_tr_split命令

shell特殊符号 * 任意个任意字符 ? 任意一个字符 # 注释字符 脱义字符 | 管道符 $ 变量前缀 , !$ 组合,正则里面表示行尾 ; 多条命令写到一行,用分号分割 ~ 用户家目录,后面正则表达式表...

WiFi362227
2017/11/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一个案例彻底弄懂如何正确使用 mysql inndb 联合索引

摘要: 有一个业务是查询最新审核的5条数据 ```sql SELECT `id`, `title` FROM `th_content` WHERE `audit_time` < 1541984478 AND `status` = 'ONLINE' ORDER BY `audit_time` D. 原来链接 ......

阿里云官方博客
30分钟前
2
0
详解如何用爬虫采集视频播放量数据(以腾讯视频为例)

现代社会提到大数据大家都知道这是近几年才形成的对于数据相关的新名词,在1980年,著名未来学家阿尔文·托夫勒便在 《第三次浪潮》一书中,将大数据热情地赞颂为“第三次浪潮的 华彩乐章”...

技术阿飞
36分钟前
5
0
区块链时代的拜占庭容错:Tendermint(二)

原文题目:《Tendermint: Byzantine Fault Tolerance in the Age of Blockchains》 原文作者:Ethan Buchman 翻译:饶云坤 校对:傅晓波 本文为节选 以下为正文: 本章阐述Tendermint共识算法...

万向区块链
48分钟前
2
0
AS连接网易Mumu模拟器

1、安装模拟器 打开这个网址现在模拟器然后安装 http://mumu.163.com/ 2、安装完成后启动模拟器 3、进入模拟器安装目录 例如本机的安装目录:C:\Program Files (x86)\MuMu\emulator\nemu\vmo...

HGMrWang
55分钟前
9
0
设计要做到扩展性强还挺难的

概述 在日常开发中,有时候你的上司会跟你说,这个模块的设计扩展性要高。把这句话说出来很简单,但是要做到则非常难。导致难的其中一个因素是: 你不熟悉这个行业的业务的玩法 我举个例子来...

Sam哥哥聊技术
57分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部