首页 > 代码库 > 西部开源学习笔记BOOK2-《unit 6》
西部开源学习笔记BOOK2-《unit 6》
#############################
#### unit6.shell脚本命令 ####
#############################
###########1.diff###########
diff file file1 ##比较两个文件的不同
-c ##显示周围的行
-u ##按照统一格式输出生成补丁
-r ##比较两个目录中文件的不同
patch file file.patch ##打补丁
-b ##备份原文件
#########2.grep##########
grep 关键字
grep -i ##忽略大小写
-n ##显示关键字在其文件所在的行号
-c ##显示过滤结果的个数
-v ##反向过滤(即显示不包含该关键字的行)
-E "关键字1|关键字2" ##过滤多个关键字
-r 目录 ##在目录中查找含有关键字的文件(递归式搜索,从命名目录开始)
注意: ^关键字 ##以关键字开头
关键字$ ##以关键字结尾
eg.grep root -r /etc/ -n ##递归式搜索/etc/下的含有root的目录和文件,并显示root在文件中的行号
#########3.cut##########
cut ##截取字符
cut -d 分隔符 ##指定分隔符
cut -f 1,7 ##显示指定的列
cut -c 1-4 ##显示指定的字符
eg.只显示ifconfig中的ip地址信息
[root@localhost /]# ifconfig eth0 | grep inet |grep -v inet6| cut -d " " -f 10
inet 172.25.254.119
[root@localhost /]# ifconfig eth0 | grep inet |grep -v inet6| awk -F " " ‘{print $1,$2}‘
inet 172.25.254.119
##awk的-F表示指定分隔符
########4.sort排序########
sort ##默认只按第一个字符排序
-n ##纯数字排序
-u ##去除冗余
|uniq -c ##去除冗余并统计冗余的个数
-t ##指定分隔符
-k ##指定列
eg:
[root@localhost mnt]# sort -t ":" -k 2 -n file
a:1
a:2
a:2
a:3
a:4
a:5
a:5
a:6
a:6
a:7
########5.uniq#######
sort file |uniq -c ##去冗余并统计冗余次数
-d ##显示冗余行
-u ##显示唯一行
#######6.tr#######
#######7.sed######
sed ‘s/原字符/替换字符/g‘ file ##替换文件中的字符
sed -e ‘策略1‘ -e ‘策略2‘ file ##执行多个策略(这个策略就是‘s/原字符/替换字符/g‘)
sed -i file ##把转换后的内容输出到指定文件
sed ‘3,5s/原字符/替换字符/g‘ file ##把3-5行替换
sed xd file ##屏蔽指定行(eg.sed 5d passwd)
sed xp file ##复制指定行(eg.sed 5p passwd)
sed -n xp file ##只显示指定行(eg.sed -n 5p passwd)
注意:当要执行显示多个指定行时,命令格式为sed -ne xp -ne xp
eg:sed -ne 5p -ne 7p file
#########8.awk##########
西部开源学习笔记BOOK2-《unit 6》