文档章节

Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

野雪球
 野雪球
发布于 10/16 00:20
字数 1682
阅读 11
收藏 0

特殊符号总结一

  • * 任意个任意字符
  • ? 任意一个字符
  • # 注释字符
  • \ 脱义字符
  • | 管道符
# #号后的备注被忽略
[root@centos01 ~]# ls a.txt # 备注 
a.txt
[root@centos01 ~]# a=1
[root@centos01 ~]# b=2
[root@centos01 ~]# c='$a$b'
[root@centos01 ~]# echo $c
$a$b
[root@centos01 ~]# c=\$a\$b # 使用脱义字符
[root@centos01 ~]# echo $c
$a$b

# 管道符综合使用
[root@centos01 ~]# cat /etc/passwd | head -n 2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
# cut命令
# -d指定分隔符 
# -f 1 表示取分隔后的第一段值
# -f 1,2 表示取1,2段值
# -f 1-3 表示取1至3段的值
# -c 指定第几个字符
[root@centos01 ~]# cat /etc/passwd | head -n 2| cut -d ":" -f 1 
root
bin
[root@centos01 ~]# cat /etc/passwd | head -n 2| cut -d ":" -f 1,2 
root:x
bin:x
[root@centos01 ~]# cat /etc/passwd | head -n 2| cut -d ":" -f 1,2,3
root:x:0
bin:x:1
[root@centos01 ~]# cat /etc/passwd | head -n 2| cut -d ":" -f 1-3
root:x:0
bin:x:1
[root@centos01 ~]# cat /etc/passwd | head -n 2| cut -c 1
r
b
[root@centos01 ~]# cat /etc/passwd | head -n 2| cut -c 2
o
i

sort,wc,uniq 命令

  • sort 排序, -n 以数字排序 -r反序 -t 分隔符 -kn1/-kn1,n2
  • wc -l 统计行数 -m 统计字符数 -w统计词(以空白字符区分词)
  • uniq 去重 -c统计行数
  • tee和>类似,重定向的同时还在屏幕显示, -a 追加
  • tr替换字符, tr 'a' 'b', 大小写替换 tr '[a-z]' '[A-Z]'
  • split 切割 -b大小(默认单位字节), -l行数
[root@centos01 ~]# cat /etc/passwd | head -n 10
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

[root@centos01 ~]# cat /etc/passwd | head -n 10 | sort
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync

[root@centos01 ~]# cat s.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
1111
1112
2aa1
2ab1
<
?
>

[root@centos01 ~]# sort s.txt -n
<
>
?
{
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
2aa1
2ab1
1111
1112

[root@centos01 ~]# cat /etc/passwd | head -n 10 | sort -r
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

[root@centos01 ~]# cat 1.txt
1
[root@centos01 ~]# cat -A 1.txt # -A查看所有字符,包括隐藏字符
1$

[root@centos01 ~]# cat wc_test.txt
This is a test file.
line 2
line 3
line 4
[root@centos01 ~]# wc wc_test.txt -l
4 wc_test.txt
[root@centos01 ~]# wc wc_test.txt -w
11 wc_test.txt
[root@centos01 ~]# wc wc_test.txt -m
42 wc_test.txt

[root@centos01 ~]# cat uniq_test.txt
1
2,
3
3,
4
4
abc
ab
6
1
[root@centos01 ~]# uniq uniq_test.txt # 只去重相邻相同的‘4’,1并没有去重
1
2,
3
3,
4
abc
ab
6
1
[root@centos01 ~]# sort uniq_test.txt | uniq # 排序后就可以去重了
1
2,
3
3,
4
6
ab
abc

[root@centos01 ~]# uniq uniq_test.txt -c
      1 1
      1 2,
      1 3
      1 3,
      2 4
      1 abc
      1 ab
      1 6
      1 1
[root@centos01 ~]# sort uniq_test.txt |uniq -c
      2 1
      1 2,
      1 3
      1 3,
      2 4
      1 6
      1 ab
      1 abc


[root@centos01 ~]# sort uniq_test.txt |uniq -c > r.log
[root@centos01 ~]# sort uniq_test.txt |uniq -c |tee  r.log
      2 1
      1 2,
      1 3
      1 3,
      2 4
      1 6
      1 ab
      1 abc

[root@centos01 ~]# echo "centos" | tr '[c]' '[C]'
Centos
[root@centos01 ~]# echo "centos" | tr '[a-z]' '[A-Z]'
CENTOS
[root@centos01 ~]# echo "centos" | tr 'c' '1'
1entos

[root@centos01 t]# ls -lh
total 224K
-rw-r--r--. 1 root root 222K Oct 16 07:55 b.log
[root@centos01 t]# split -b 1000 b.log
[root@centos01 t]# ls
b.log  xap  xbf  xbv  xcl  xdb  xdr  xeh  xex  xfn  xgd  xgt  xhj  xhz  xip
xaa    xaq  xbg  xbw  xcm  xdc  xds  xei  xey  xfo  xge  xgu  xhk  xia  xiq
xab    xar  xbh  xbx  xcn  xdd  xdt  xej  xez  xfp  xgf  xgv  xhl  xib  xir
xac    xas  xbi  xby  xco  xde  xdu  xek  xfa  xfq  xgg  xgw  xhm  xic  xis
xad    xat  xbj  xbz  xcp  xdf  xdv  xel  xfb  xfr  xgh  xgx  xhn  xid
xae    xau  xbk  xca  xcq  xdg  xdw  xem  xfc  xfs  xgi  xgy  xho  xie
xaf    xav  xbl  xcb  xcr  xdh  xdx  xen  xfd  xft  xgj  xgz  xhp  xif
xag    xaw  xbm  xcc  xcs  xdi  xdy  xeo  xfe  xfu  xgk  xha  xhq  xig
xah    xax  xbn  xcd  xct  xdj  xdz  xep  xff  xfv  xgl  xhb  xhr  xih
xai    xay  xbo  xce  xcu  xdk  xea  xeq  xfg  xfw  xgm  xhc  xhs  xii
xaj    xaz  xbp  xcf  xcv  xdl  xeb  xer  xfh  xfx  xgn  xhd  xht  xij
xak    xba  xbq  xcg  xcw  xdm  xec  xes  xfi  xfy  xgo  xhe  xhu  xik
xal    xbb  xbr  xch  xcx  xdn  xed  xet  xfj  xfz  xgp  xhf  xhv  xil
xam    xbc  xbs  xci  xcy  xdo  xee  xeu  xfk  xga  xgq  xhg  xhw  xim
xan    xbd  xbt  xcj  xcz  xdp  xef  xev  xfl  xgb  xgr  xhh  xhx  xin
xao    xbe  xbu  xck  xda  xdq  xeg  xew  xfm  xgc  xgs  xhi  xhy  xio

[root@centos01 t]# wc b.log -l
5732 b.log
[root@centos01 t]# split -l 1000 b.log split_file
[root@centos01 t]# ls -lh
total 452K
-rw-r--r--. 1 root root 222K Oct 16 07:55 b.log
-rw-r--r--. 1 root root  44K Oct 16 07:59 split_fileaa
-rw-r--r--. 1 root root  44K Oct 16 07:59 split_fileab
-rw-r--r--. 1 root root  43K Oct 16 07:59 split_fileac
-rw-r--r--. 1 root root  36K Oct 16 07:59 split_filead
-rw-r--r--. 1 root root  35K Oct 16 07:59 split_fileae
-rw-r--r--. 1 root root  23K Oct 16 07:59 split_fileaf
[root@centos01 t]# wc split_fileaa -l
1000 split_fileaa

shell 特殊符号总结二

  • $变量前缀, !$组合, 正则里面表示行尾
  • ; 多条命令写到一行用分号分割
  • ~用户家目录;正则表达式中表示匹配符
  • & 放到命令后面,会把命令丢到后台
  • > >> 2> 2>> &>
  • [] 指定字符中的一个, 例如[0-9]
  • ||和&&, 用于命令之间
[root@centos01 ~]# ls asfasgf.txt || wc -l 1.txt  # 只要有一个命令成功,后面的命令就不会再执行 
ls: cannot access asfasgf.txt: No such file or directory
1 1.txt
[root@centos01 ~]# ls asfasgf.txt && wc -l 1.txt  # 只有有一个命令失败,后面的所有命令就不会再执行 
ls: cannot access asfasgf.txt: No such file or directory

[root@centos01 ~]# [ -d test_dir ] || mkdir test_dir  # test_dir存在,则不会创建;不存在则创建

© 著作权归作者所有

共有 人打赏支持
野雪球
粉丝 7
博文 47
码字总数 50182
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

浅析微信支付:开通免充值产品功能及如何进行接口升级指引

本文是【浅析微信支付】系列文章的第十五篇,主要讲解如何开通免充值产品功能流程和其中的注意事项,对于接口升级会重要讲解,避免爬坑。 浅析微信支付系列已经更新十五篇了哟~,没有看过的...

YClimb
57分钟前
2
0
看看ArrayDeque源码

之前看了其他实现Deque接口的类,这里再看看ArrayDeque吧,下图可以看到这个类设计的结构层次,其实Deque接口是继承了Queue接口的。用可调整大小的数组实现Deque接口。没有容量限制,他们根据...

woshixin
57分钟前
2
0
如何存储登录cookie,发送一个post类型的api请求?

其实发送post请求和get请求一样,主要就是不知道如何存储登录cookie进行发送请求,请教xx得到如下解决办法 点击右下方的cookies,填写cookies信息,如图 1填写登录的cookie名,2填写cookie的...

七曦777
58分钟前
2
0
利用cefSharp实现网页自动注册登录的需要注册的一些事项

最近朋友有个需要自动注册登录点击的事,我帮着写了写,好久没写过这东西了,在写的过程中总结了需要注意的一些事项。 一、换IP之后要测试一下速度,我目前用的最简单的测试方法就是20-30秒加...

我退而结网
今天
2
0
Go语言中使用 BoltDB数据库

boltdb 是使用Go语言编写的开源的键值对数据库,Github的地址如下: https://github.com/boltdb/bolt boltdb 存储数据时 key 和 value 都要求是字节数据,此处需要使用到 序列化和反序列化。...

Oo若离oO
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部