shell脚本学习2

前面已经介绍过shell脚本的基本的使用的方法,在这篇中我将介绍三个字符截取命令cut和awk以及sed命令。

1    cut命令

cut [选项] 文件名
选项:
-f 列号: 提取第几列 (列号之间用,分开,列号之间是用制表符分开)
-d 分隔符: 按照指定分隔符分割列("分隔符")
cut命令与grep命令经常联合使用
cut命令默认是以tab制表符为分隔符的

2    awk命令

awk '条件1 {动作1}  条件2 {动作2}......'    文件名
条件:
一般使用关系表达式作为条件
x > 10 判断变量x是否大于10
x >= 10 大于等于10
x <= 10 小于等于10
动作:
格式化输出
流程控制语句

eg:

查看根目录是否超过%80
df -h | grep sdb5 | awk '{print $5}' | cut -d "%" -f 1
得到根目录的使用量

除了这里的用法外,awk还有其它的一些用法:

FS内置变量(使用awk命令时,指定的分隔符)
cat  /etc/passwd | grep "/bin/bash" | awk ' BEGIN {FS=":"}  {printf $1 "\t" $3 "\n"} '
awk 'END {printf "The End \n"} {printf $2 "\t" $6 "\n"}'  文件名
BEGIN和END命令
BEGIN {动作}是在所有命令执行之前执行的命令
END {动作}是在所有命令执行之后执行的命令
awk命令还支持关系运算符。

3    sed命令

sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取,替换,新增的命令。
sed [选项]  '[动作]'   文件名
选项:
-n      一般sed命令会把所有数据都输出屏幕,如果加入此选择,则只会把经过sed命令处理的行输出的结果
-e     允许对输入数据应用多条sed命令编辑(命令之间用;隔开)
-i      用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出(可以修改文件)
动作:
a\   追加,在当前行后添加一行或多行,添加多行时,除最后一行外,每行末尾需要用"\"代表数据未完结
c\   行替换,用c后面字符串替换原数据行,替换多行时,除最后一行外,每行末尾用"\"代表数据未完结
i\    插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用"\"代表数据未完结
d   删除,删除指定的行
p   打印,输出指定的行
s   字串替换,用一个字符串替换另外一个字符串。格式为"行范围s/旧字符串/新字符串/g" (和vim中的替换格式类似)
sed -n '2p' 文件名 只打印文件中的第二行
sed '2a hello'  文件名 在第二行后追加

4    排序命令
sort  [选项]   文件名
选项:
-f---->忽略大小写
-n---->以数值型进行排序,默认使用字符串排序
-r---->反向排序
-t---->指定分隔符,默认分隔符是制表符
-k n,m---->按照指定的字段范围排序,从第n字段开始,m字段结束(默认到行尾)

再次总结:

我在这里写的就是入门的shell脚本学习,如果你已经了解了shell的语法,那么这里可以帮助你更好的复习;如果你还没有接触过shell学习,那么这里可以让你在最短的时间内掌握它。在这里写的只是很少的一部分,而且我也是初学者,在以后,可能写一些linux shell测试用例。这里有我学习的一些代码例子,有兴趣的话,欢迎下载学习。点击打开链接

最后,我想说的是:如果有问题,大家可以一起交流和学习









发布了15 篇原创文章 · 获赞 0 · 访问量 1802

猜你喜欢

转载自blog.csdn.net/jiankangzhu/article/details/51126408