22.Shell特殊符号和cut,sort,wc,uniq,tee,tr,split命令

五周第五次课(1月12日)

8.10 shell特殊符号cut命令

8.11 sort_wc_uniq命令

8.12 tee_tr_split命令

8.13 shell特殊符号下

相关测验题目: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

一 特殊符号

  • [ ] * 任意个任意字符,通配符
  • [ ] ? 任意一个字符
  • [ ] # 注释字符
  • [ ] \ 脱义字符
  • [ ] | 管道符
[email protected]:~# a=1
[email protected]:~# b=2
[email protected]:~# c=$a$b
[email protected]:~# echo $c
12
[email protected]:~# c=\$a\$b
[email protected]:~# echo $c
$a$b

二 几个和管道有关的命令

  • [ ] cut 分割,-d 分隔符 -f 指定段号 -c 指定第几个字
[email protected]:~# cat /etc/passwd |head -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[email protected]:~# cat /etc/passwd |head -2 |cut -d ":" -f 1 //只取第一段
root
bin
[email protected]:~# cat /etc/passwd |head -2 |cut -d ":" -f 1,2 //取第一段,第二段
root:x
bin:x
[email protected]:~# cat /etc/passwd |head -2 |cut -c 4
t
:
  • [ ] sort 排序, -n 以数字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2
[email protected]:~# sort -r /etc/passwd
xavi:x:1000:1000:xavi,xavi‘s office,62580558,62589906:/home/xavi:/bin/bash
xavidsf:x:1001:1001:xavi:/home/xavidsf:/bin/bash
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
unbound:x:993:991:Unbound DNS resolver:/etc/unbound:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
test:x:1002:1002::/home/test:/bin/bash
  • [ ] wc -l 统计行数 -m 统计字符数 -w 统计词
[email protected]:~# vi 2.txt
[email protected]:~# cat 2.txt
2221dedd
dede
ded
1213
32e4
ded
[email protected]:~# wc -l 2.txt
6 2.txt
[email protected]:~# wc -m 2.txt
32 2.txt
[email protected]:~# wc -w 2.txt
6 2.txt
  • [ ] uniq 去重, -c统计行数,文件内容是没有改变的

[email protected]:~# sort 2.txt|uniq  //必须先给文件排序,才能生效
1
11
1213
2
2221dedd
3
3232
32e4
444
ded
dede
[email protected]:~# sort 2.txt|uniq -c  //统计重复次数,
      1 1
      1 11
      1 1213
      2 2
      1 2221dedd
      2 3
      1 3232
      1 32e4
      1 444
      2 ded
      1 dede
  • [ ] tee 和>类似,重定向的同时还在屏幕显示
[email protected]:~# echo "dadsaddsdad" |tee a.txt
dadsaddsdad
[email protected]:~# sort 2.txt|uniq -c |tee a.txt
      1 1
      1 11
      1 1213
      2 2
      1 2221dedd
      2 3
      1 3232
      1 32e4
      1 444
      2 ded
      1 dede
  • [ ] te -a 和>>类似,追加重定向

    [email protected]:~# sort 2.txt|uniq -c |tee -a a.txt
      1 1
      1 11
      1 1213
      2 2
      1 2221dedd
      2 3
      1 3232
      1 32e4
      1 444
      2 ded
      1 dede
    [email protected]:~# cat a.txt
      1 1
      1 11
      1 1213
      2 2
      1 2221dedd
      2 3
      1 3232
      1 32e4
      1 444
      2 ded
      1 dede
      1 1
      1 11
      1 1213
      2 2
      1 2221dedd
      2 3
      1 3232
      1 32e4
      1 444
      2 ded
      1 dede
  • [ ] tr 替换字符,tr ‘a‘ ‘b‘,大小写替换tr ‘[a-z]‘ ‘[A-Z]‘ //[]的意思是任选几个括号内的字符
[[email protected] ~]# echo "xavilinux" |tr ‘[al]‘ ‘[AL]‘
xAviLinux
[[email protected] ~]# echo "xavilinux" |tr ‘a‘ ‘A‘
xAvilinux
  • [ ] split 切割,-b大小(默认单位字节),-l行数

-b 表示依据大小来分割文档,单位为byte

[[email protected] ~]# mkdir split_dir
[[email protected] ~]# cd !$
cd split_dir
[[email protected] split_dir]# cp /etc/passwd ./
[[email protected] split_dir]# split -b 500 passwd
[[email protected] split_dir]# ls
passwd  xaa  xab  xac  xad  xae

查看起实际大小,du -sh查看的是块,du -sb 按照byte查找大小

如果split不指定目标文件名,则会以xaa、xab……这样的文件名来存取切割后的文件。指定目标文件名,示例如下:

[[email protected] split_dir]# rm -f x* //把前面分割好的文件全部删除
[[email protected] split_dir]# split -b 100 passwd 123
[[email protected] split_dir]# ls
123aa  123ad  123ag  123aj  123am  123ap  123as  123av  passwd
123ab  123ae  123ah  123ak  123an  123aq  123at  123aw
123ac  123af  123ai  123al  123ao  123ar  123au  123ax

-l 表示依据行数来分割文档

[[email protected] split_dir]# rm -f 123*
[[email protected] split_dir]# split -l 10 passwd //10行分割
[[email protected] split_dir]# wc -l *
  46 passwd
  10 xaa
  10 xab
  10 xac
  10 xad
   6 xae
  92 总用量

三 shell的特殊符号

1、特殊符号$

$可以用作变量前面的标识符,还可以和!结合使用。

[[email protected] /]# touch 1.txt
[[email protected] /]# ls 1.txt
1.txt
[[email protected] /]# ls !$
ls 1.txt
1.txt

!$表示上条命令的最后一个变量,本例中上条命令最后是1.txt,那么在当前命令下输入!$则表示1.txt

2、特殊符号;

在一行命令中运行两个或两个以上的命令,需要在命令之间加符号;。

[[email protected] /]# ls 1.txt ; wc -l 2.txt
1.txt
8 2.txt
[[email protected] /]# ls 1.txt;wc -l 2.txt //命令之间不空格也是有效的,
1.txt
8 2.txt
3、特殊符号~

符号~代表用户的家目录,root用户的家目录是/root,普通用户的家目录是/home/username。

4、特殊符号&

把一条命令放到后台执行,则需要加上符号&,它通常用于命令运行时间较长的情况。比如,可以用在sleep后,如下所示:

[[email protected] /]# sleep 30 &
[2] 7047
[[email protected] /]# jobs
[1]+  已停止               wc -l(工作目录:~/split_dir)
[2]-  运行中               sleep 30 &
5、重定向符号>、>>、2>和2>>,错误和正确都输入&>

和>>分别表示取代和追加的意思。当我们运行一个命令报错时,报错信息会输出到当前屏幕。如果想重定向到一个文本,则要用重定向符号2>或者2>>,它们分别表示错误重定向和错误追加重定向。

6、中括号[ ]

中括号内为字符组合,代表字符组合中的任意一个,还可以表示一个范围(1-3,a-z)。

7、特殊符号&& ||

在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&” 和 “||” 下面把这几种情况全列出:

command1 ; command2

command1 && command2

command1 || command2

使用 ”;” 时,不管command1是否执行成功都会执行command2;

使用 “&&” 时,只有command1执行成功后,command2才会执行,否则command2不执行;

使用 “||” 时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。

[[email protected] /]# ls 1a.txt; wc -l 2.txt
ls: 无法访问1a.txt: 没有那个文件或目录
[2]-  完成                  sleep 30
8 2.txt
[[email protected] /]# ls 1.txt || wc -l 2.txt
1.txt
[[email protected] /]# ls 1.txt && wc -l 2.txt
1.txt
8 2.txt
[[email protected] /]# ls 1a.txt && wc -l 2.txt
ls: 无法访问1a.txt: 没有那个文件或目录

原文地址:http://blog.51cto.com/12995218/2060847

时间: 2024-08-28 20:36:32

22.Shell特殊符号和cut,sort,wc,uniq,tee,tr,split命令的相关文章

65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令

liunx的特殊符号 代表字母或者数字 多个 ? 任意一个字符"#" 注释\ 脱义字符| 管道符 1.* 代表任意个任意字符或者数字 [[email protected] /]# ls *.txt1.txt[[email protected] /]# 2.?任意一个字符 [[email protected] /]# ls ?.txt1.txt[[email protected] /]# 3.注释 [[email protected] /]# #11111[[email protecte

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/passwd    cut -d: -f 3,6,5  /etc/passwd cut -d: -f 3-6  /etc/passwd cut -c 10 /etc/passwd   取第十个字符 cut -c 5-10 /etc/pas

cut,sort,wc,uniq,tee,tr,split,并且,和,或者

cut 把一个文件分段 cut -d:(指定分割符) -f(第几段) 3,4,5 /etc/passwd cut -c(截取第几个字符) 1-10 /etc/passwd sort 用来排序 sort -t:(指定分割符) -k3(第几段) -n(纯数字排序) /etc/passwd sort -t:(指定分割符) -k3,5(区间段用,号,不能用-) -n(纯数字排序) -r(反序排序) -u(去重复) /etc/passwd wc -l(文档有多少行数) 1.txt 2.txt wc -w(

linux命令, cut,sort,wc,uniq,tee 说明

 cut :截取某一个字段 语法:cut -d "分隔字符" [-cf] n 这里的n是数字 -d :后面跟分隔字符,分隔字符要用双引号括起来 -c :后面接的是第几个字符 -f :后面接的是第几个区块 -d 后面跟分隔字符,这里使用冒号作为分割字符,-f 1 就是截取第一段,-f和1之间的空格可有可无. -c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3  sort :用做排序 语法:sort [-t 分隔符] [-kn1,n2] [-nru] 

8.10 shell特殊符_cut命令;8.11 sort wc uniq命令;8.12 tee

8.10 shell特殊符_cut命令 1. 特殊符号: * 通配符 ? 任意一个字符 # 注释字符(文件脚本里行首加#,表示此行不生效) \ 脱义字符 | 管道符 cut命令: -d(分隔符) -f(指定段号) -c(指定第几个字符) cut (分割) -d (分隔符) -f (指定段号) 1. 显示前两行,以:(冒号)分割,1,2,3,4段: cat /etc/passwd  内容输出 |head -2  指定前两行内容 |cut -d ":"  指定以冒号为分割符号 -f 1,2

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

*代表0个或多个任意字符 [[email protected] ~]# ls *txt 11.txt  1.txt  22.txt  2.txt  aa.txt  a.txt ?只代表一个任意字符 不管是数字还是字母,只要是一个字符的都能匹配出来 [[email protected] ~]# ls ?.txt 1.txt  2.txt  a.txt  b.txt [[email protected] ~]# ls ?txt ls: 无法访问?txt: 没有那个文件或目录 注释符号#,这个符号后面

shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下

shell特殊符号 * 任意个任意字符 [[email protected] ~]# ls *.txt 1.txt  23.txt  2.txt  david.txt ? 任意一个字符 [[email protected] ~]# ls ?.txt 1.txt  2.txt # 注释字符 [[email protected] ~]# #echo 'ok' \ 脱义字符 [[email protected] ~]# echo -e '123\n456\n789\t0000' 123 456 789

2018.4.21 五周第四次课(shell特殊符号,cut截取等命令)

shell特殊符号_cut命令 概念:cut命令用来截取某一个字段 格式:cut -d '分割字符' [-cf] n,这里的n是数字,该命令选项有如下几个: - d 后面跟分割字符,分割字符要用单引号括起来 - c 后面接的是第几个字符 - f 后面接的是第几个区块 cut命令用法如下 [[email protected] do]# cat /etc/passwd |head -2root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/no

文本过滤之——grep,sort,wc,uniq,tr, 精准过滤IP地址,A类地址,B类地址.... 并排序

文本过滤之IP地址精准过滤 在写之前自己整理了一点自己平时老是搞混的东西,最基础的就不写了,前面的东西不想看得一眼代过,就当借着做IP过滤顺便整理下常用的,看看后面如何精准锁定IP地址吧. 一.正则表达式(PATRERN) 括号() 方括号[] 尖括号<> 大括号{} 的使用 \[\]  匹配指定范围内的任意单个字符 [^] 用于匹配指定对象之外的任意单个字符 ^[] 用于匹配指定对象并且在行首的任意单个字符 \(\) 用作后向引用,也可以用于限定或(\|)的作用域 \1 引用第一个左括号及其