码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2018-04-25 10:20:26      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:shell 特殊符号 cut命令

一、shell特殊符_cut命令
技术分享图片
脱义字符:
[root@linux-01 ~]# c=\$a\$b //和 #c=‘$a$b‘ 效果一样
[root@linux-01 ~]# echo $c
$a$b

管道符
技术分享图片
cut 分割
[root@linux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1 //取第一段
root
bin
[root@linux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2 //取第1,第2段
root:x
bin:x
[root@linux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3 //取1-3段
root:x:0
bin:x:1

[root@linux-01 ~]# cat /etc/passwd head -2 cut -c 4 //-c,指定第几个字符
t

二、sort_wc_uniq命令
sort 排序
[root@linux-01 ~]# sort /etc/passwd //普通没有特殊符号的按照a b c d e 26个英文字母排序
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
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
hll:x:1001:1002::/home/hll:/bin/bash

[root@linux-01 ~]# sort filename //文件中有特殊符号、数字的先排特殊符号、数字、字母
(
[
}
11
345
88
aadgg
bbbb
dgfggf

sort -n选项
[root@linux-01 ~]# sort -n filename //-n选项以数字排序,和把特殊符号和字母都识别为0
(
[
}
aadgg
bbbb
dgfggf
11
88
345

sort -nr filename ,-r选项,反排序,最大在前面,最小的在后面

#wc -l //统计行数的命令
[root@linux-01 ~]# wc -l 2.txt //统计2.txt文件行数
19 2.txt
#wc -m //统计字符数的命令
[root@linux-01 ~]# wc -m 2.txt //统计2.txt文件的字符数
85 2.txt

#cat -A 2.txt //cat -A可以查看所有字符包括隐藏的,可以看到每行字符后面有一个换行符
#wc -w 2.txt //统计词的数量
[root@linux-01 ~]# wc -w 2.txt
18 2.txt

#uniq //去重复的,但是去重之前先要进行排序,然后再去重
可以先排序,使用 #sort 2.txt , 然后再 #sort 2.txt |uniq

三、tee_tr_split命令
tee 和 > 类似,重定向的同时还在屏幕显示
清空一个文件的命令:#> 2.txt //清空2.txt文件内容
sort 2.txt |uniq -c |tee 4.txt //把2.txt文件去重之后重定向输入到4.txt文件中,|tee的作用就是重定向,把管道前面的结果打印在屏幕上
#sort 2.txt |uniq -c |tee -a 4.txt //tee -a 就是追加

tr 命令是用来替换字符的
[root@linux-01 ~]# echo "linux" |tr ‘[ln]‘ ‘[LN]‘ //将ln替换为LN
LiNux
[root@linux-01 ~]# echo "linux" |tr ‘ln‘ ‘LN‘ //或者也可以写成这样
LiNux
[root@linux-01 ~]# echo "linux" |tr ‘[a-z]‘ ‘[A-Z]‘ //可以指定范围
LINUX

split 切割
#split -b 100M bigfile //-b选项,指定切割文件大小,不写单位1000后面默认单位是字节
#split -l 1000 bigfile //-l选项,指定切割文件行数
#find /etc/ -type f -name "*conf" -exec cat {} >> 3.txt \; //查找/etc下的.conf文件并把它追加到3.txt
#split -b 1000 3.txt //指定切割文件大小为1000字节
[root@linux-01 ~]# split -b 100K 3.txt abc //指定切割文件前缀为abc
[root@linux-01 ~]# ls
2.txt 4.txt abcab 3.txt abcaa abcac
#split -l 1000 3.txt // 切割1000行

四、shell特殊符号下
技术分享图片
[root@linux-01 ~]# for i in seq 1 10 //执行多条命令

do
echo $i
done
1
2
3
4
5
6
7
8
9
10
[root@linux-01 ~]# for i in seq 1 10; do echo $i; done //使用向上翻历史命令,列出来的是用分号隔开的多条命令

[root@linux-01 ~]# ls 3.txt ; wc -l 2.txt //两条命令一起执行中间加分号
3.txt
19 2.txt

正确重定向,会把之前文件覆盖掉
> 追加重定向正确的输出
2> 输出错误内容重定向
2>> 把错误信息追加重定向
&> 把正确错误内容输出到一个文件中
[ ] 指定字符中的一个,[0-9], [a-zA-Z], [abc]
|| 用在shell中表示或者的意思
#ls 1.txt || wc -l 2.txt // ||表示当第一条命令执行成功后就不执行第二条命令,第一条执行不成功则执行第二条
#ls 1.txt && wc -l 2.txt //&&表示前面的命令执行成功了才会执行后面的命令
#[ -d abcd ] || mkdir abcd //判断abcd目录是否存在,如果存在就不创建,如果不存在,就创建

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

标签:shell 特殊符号 cut命令

原文地址:http://blog.51cto.com/13669226/2107519

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!