8.10 shell特殊符号cut命令
* 任意个任意字符
? 任意一个字符
# 注释字符
\ 脱义字符
| 管道符
几个和管道有关的命令: cut 分割, -d 分隔符
-f 指定段号 -c 指定第几个字符;cut的命令就截取的用法,使用-c 就不要用 -d 和-f 选项
例:
cat /etc/passwd |head -2 |cut -d ":" -f 1
查看passwd 文档,输出给head 只留头两行,输出给cut截取以 : 分割的第一段
cat /etc/passwd |head -2 |cut -d ":" -f 1,2
查看passwd 文档,输出给head 只留头两行,输出给cut截取以 : 分割 的第一段和第二段
cat /etc/passwd |head -2 |cut -d ":" -f 1-3
查看passwd 文档,输出给head 只留头两行,输出给cut截取以 : 分割 的第一段到第三段
cat /etc/passwd |head -2 |cut -c 4
查看passwd 文档,输出给head 只留头两行,输出给cut截取第四个字符
8.11 sort_wc_uniq命令
- sort 排序
sort 默认会按照 ASCII码排序
sort 经常和unit 结合使用
sort 排序 特殊符号>数字>字母
-n 以数字排序,使用 -n 选项时,会默认认为特殊符号和字母是 0
-r 反序排序输出到屏幕
-t 分隔符,-kn1/-kn1,n2\
- wc 统计命令
-l 统计行数
-m 统计字符数 统计文本的时候,会把行尾的 $ 换行符也统计为一个字符
-w 统计词 , 是以文本里面以空格或空白字符为分割计算
- uniq 去重
去除重复,必须是连续的重复才会有效,所以才会需要和sort 同时使用
-c 统计重复次数
sort和uniq同时使用
sort 2.txt |uniq -c
先排序,后去重
8.12 tee_tr_split命令
- tee
tee 和 > 类似,重定向的同时还在屏幕显示
由于使用 重定向 追加重定向,屏幕没有输出结果,所以,就有了tee
tee 就等同于重定向内容到某个文件的同时,还在屏幕显示结果
-a 选项就是 追加重定向,并在屏幕显示结果\
- tr
tr 替换字符,tr 'a' 'b',大小写替换tr '[a-z]' '[A-Z]'
例:
echo "aminglinux" |tr '[al]' '[AL]'
符串输出 aminglinux ,把结果丢给 tr ,tr 定义 字母串例的 al 替换为 AL
echo "aminglinux" |tr '[al' '[A]'
字符串输出 aminglinux ,把结果丢给 tr ,tr 定义 字母串例的 a 替换为 A
echo "aminglinux" |tr '[a-z]' '[A-Z]'
字符串输出 aminglinux ,把结果丢给 tr ,tr 定义 字母串例的 a-z 替换为 A-Z
- split
split 切割,大文件切割成小文件\
-b 大小(默认单位字节)
split -b 100M bigfile
将 binfile 文件切割为100M 一个大小的多个文件
split 如果 -b 100 不加单位的时候。就使用默认单位“字节” 例:
split -b 100k a.txt abc
将a.txt 文件切割100k大小的一个的多个文件,以abc 为前缀的命名\
-l 行数
split -l 1000 a.txt
将文件 a.txt 以1000行为以个文件,切割
8.13 shell特殊符号下
$ 变量前缀,!$组合,正则里面表示行尾
; 多条命令写到一行,用分号分割,分割两条命令的时候,第一条命令不管对不对,之后的命令都将继续运行
~ 用户家目录,后面正则表达式表示匹配符
& 放到命令后面,会把命令丢到后台
> 重定向;
>> 追加重定向;
2> 错误重定向 ;
2>> 错误追加重定向;
&> 正确和错误输出重定向
[ ] 指定字符中的任意一个,[0-9],[a-zA-Z],[abc]
|| 在正则里面叫 或 ;分割两条命令的时候,当第一条命令执行成功,第二条命令将不再执行,反之,如果第一条命令执行不成功过,就会直接第二天命令
&& 用于命令之间;分割两条命令的时候,当第一条命令执行成功,第二条命令才会继续执行,反之,如果第一条命令执行不成功过,将不会继续执行
|| 和&& 等同于判断 命令的判断
==cut、 wc、uniq、sort、tee、tr、split这些命令,都只是在屏幕上显示,并不会对文件本身做任何的改动。需要做任何改动,可以用重定向相关符号进行配合使用==