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

shell脚本与命定

时间:2015-07-28 18:59:06      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:shell脚本   sed   awk   grep   函数   变量   

  1. 变量、函数的定义与引用,其表达方法很多,我选下面这种:

变量名=`命定`   #变量定义

$变量名       #变量的引用


函数名()

{

 命定1;

 命定2;           

 .....

}          #函数的定义

函数名      #函数的引用    

例如我第一篇博文里的

user_add()

{

id smbmin &>/dev/null;  #smbmin是已经存在的用户

while (($?==0))

    do

read -p "please input user name:"  user_name;

id $user_name &>/dev/null;

done

useradd   $user_name -g smbkefu -s /sbin/nologing;

smbpasswd -a $user_name;

echo "$user_name is ok!"

}                      #定义user_add函数    

user_add                  #引用user_add函数

2.脚本中常用命定

sort 主要用来排序,它选项很多,我只列常用的

-n:按数字排序

-r:反向排序

-u: 只显示不重复的

还有一个就是按某列进行排序

sort -t ‘分隔符‘ -k ‘列号‘ 


uniq 主要用来去重和统计重复的行

-i:忽略大小写

-c:统计不同行的重复次数

-u:只显示唯一的行


awk以一行一行的处理文件,主要用来截取文件的某段信息

基本表达式为:awk -F ‘分隔符‘ ‘条件{print 位置参数"输出语句"位置参数}‘

$0为全行,

$n为第N个字段

NR为行号

NF为总行数


sed文本在线编辑工具,一行一行处理,主要用于对文件的增删改查

基本表达式为:sed -[选项] "行号,行号 操作" 文件

或者 sed -[选项] "/条件/操作" 文件

其中主要常用选项有: 

-i:直接对文件里面内容操作

-n:显示匹配的行,否者会全部显示

删:操作中删除行为d ;若要删除字段这用 s/字段//g 来实现,原理是把这个字段变成空格来实现删除。

增:在某行前添加一个新行主要用i,某行后面添加为a;如要行首添加但不换行则为 s/^/字段/,行尾添加但不换行为 s/$/字段/;若要某个字段1前添加某个字段2则为:s/字段1/字段1字段2/。

改:若要把字段1改为字段2则为:s/字段1/字段2/g,加了g就是全局替换,否则只替换匹配行的第一个字段。

查:用的是-n选项和p操作。

值得注意的是sed的操作中=为打印行号。


cut 用来截取某个字段

-d ‘指定分隔符‘

-f ‘提取的段号‘

-c 以字符为单位


wc 用来统计

-l 统计总共的行

-w 统计总共的字符

-m 统计总共的字节

 

grep用来过滤一般与|一起用

-c:统计行数

-n:显示行号

-E:支持正则表达式,也可以写作egrep

-v:显示不匹配的行(取反)


tail -n 数字 取倒数几行

head -n 数字 取头几行

  这是我目前整理出来的实用的命定选项,如有错误请指正,如有更优或补充请建议

本文出自 “创新分享驰骋里外” 博客,请务必保留此出处http://10554846.blog.51cto.com/10544846/1679242

shell脚本与命定

标签:shell脚本   sed   awk   grep   函数   变量   

原文地址:http://10554846.blog.51cto.com/10544846/1679242

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