shell特殊符号
* 任意个任意字符
[root@test ~]# ls *.txt
1.txt 23.txt 2.txt david.txt
? 任意一个字符
[root@test ~]# ls ?.txt
1.txt 2.txt
# 注释字符
[root@test ~]# #echo 'ok'
\ 脱义字符
[root@test ~]# echo -e '123\n456\n789\t0000'
123
456
789 0000
| 管道符
[root@test ~]# cat 2.txt|wc -l
2
cut命令
-b 指定第几个字节
-d 分隔符
-f 指定段号
-c 指定第几个字符;若是中文字符等于3个字节c=3b;英文c=b
[root@test ~]# cat 2.txt
I am linux my qq 1234567
[root@test ~]# cat 2.txt|cut -b 1,2,3,4
I am
[root@test ~]# cat 2.txt|cut -c 1,2,3,4
I am
中文的区别
[root@test ~]# cat 1.txt
我是 linux
[root@test ~]# cat 1.txt|cut -c 1
我
[root@test ~]# cat 1.txt|cut -b 1,2,3
我
例子2:打印出linux my
[root@test ~]# cat 2.txt
I am linux my qq 1234567
[root@test ~]# cat 2.txt|cut -d ' ' -f 3,4
linux my
sort_wc_uniq命令
-n 按照数值排序 升序
-r 倒序
-u 排除重复的行
[root@test ~]# sort -n 2.txt
0
0
0
1
1
2
2
3
4
45
56
56
66
87
687
-r:倒序
[root@test ~]# sort -r 2.txt
87
66
56
56
45
4
去重:
[root@test ~]# sort -un 2.txt
0
1
2
3
4
45
56
66
87
-t 表示以:为分隔符; -k3 表示以第3段排序
[root@test ~]# sort -n -t : -k3 3.txt
pear:90:2.3
apple:10:2.5
orange:20:3.4
banana:30:5.5
wc -l 统计文件行数
wc -c 统计字符数
wc -w 统计单词数
uniq
uniq -d:仅显示重复出现的行
uniq -u:显示不重复出现的行
uniq -c:计算个数
[root@test ~]# cat test.log
https://www.taobao.com/1.html
https://www.taobao.com/2.html
https://www.taobao.com/3.html
https://www.taobao.com/2.html
https://www.baidu.com/inyydex.html
https://www.baidu.com/in.html
https://www.baidu.com/index.html
https://jusjuu.ia/jsw/zdnst/index.html
[root@test ~]# awk -F '[:/]+' '{print $2}' test.log |uniq
www.taobao.com
www.baidu.com
jusjuu.ia
[root@test ~]# awk -F '[:/]+' '{print $2}' test.log |uniq -c
4 www.taobao.com
3 www.baidu.com
1 jusjuu.ia
[root@test ~]# awk -F '[:/]+' '{print $2}' test.log |uniq -d
www.taobao.com
tee_tr_split命令
tree:
tee 和>类似,重定向的同时还在屏幕显示
tr
替换字符
[root@test ~]# echo "HELLO WORLD" | tr 'A-Z' 'a-z'
-d:删除
[root@test ~]# echo "HELLO 123 WORLD12 12" | tr -d [0-9]
HELLO WORLD
[root@test ~]# echo "HELLO:123 WORLD:12 " | tr -s ":" "="
HELLO=123 WORLD=12
split
切割;
-b大小(默认单位字节)
-l行数