shell知识点(一)
来源:互联网 发布:摩卡软件 java笔试题 编辑:程序博客网 时间:2024/05/17 02:08
1、awk中,花括号用于将几块代码组合在一起。
#显示一个文档的内容到控制台上
$ awk '{print}' /etc/passwd
2、在awk中$0变高了表示整个当前行,所以print和print $0的作用完全一样。
3、以冒号分割每行,然后显示每行第一个字段
$ awk -F":" '{print $1}' /etc/passwd
<1>、-F选项指定了字段分割符
<2>、$1表示每一行分割后的第一个字段
4、对打印的信息添加一些文本信息
$ awk -F":" '{print "username:"$1 "\t\tuid" $3}' /etc/passwd
<1>、在print后面添加文本可以是有双引号直接添加
5、通常,对于每个输入行,awk都会执行每个脚本代码块一次;
awk在开始处理输入文件前会执行BEGIN代码块;
awk在粗粒输入文件中的所有行之后执行END代码块;
6、规则表达式:awk允许使用规则表达式,根据规则表达式是否匹配当前行来选择执行独立代码块。
#只输出包好字符序列foo的那些行,使用/把字符串包含起来
/foo/{print}
#一些复杂的规则表达式
/[0-9]+\.[0-9]*/{print}
7、if [[ -z "字符串"]]; then
code;
fi
<1>、[[]] 相当于(),但是[[和]]要和它们前后的变量要用空格隔开;
<2>、-z是判断字符串是否为空。
8、在命令中要用到其他命令的结果,可以把其他命令放到``中。
如:
#杀掉包含recomm和cn.richinfo这2个字符串的进程
kill ` ps aux|grep recomm|grep cn.richinfo|awk '{print $2}'`
9、可以讲任意一种布尔表达式放在一个代码块之前 ,以控制合适执行某特定块。
仅当对前面的布尔表达式求值为真时,awk才执行代码块。
awk -F":" '$1 == "fred" {print $3}' /etc/passwd
awk提供了完整的比较运算符集合:"==" 、"<"、">"、"<="、">=" 、"!="、"~"、"!~",
其中"~"和"!~"是匹配(即包含)和不匹配(不包含)。
#第五个字段包含root,则打印第三个字段,注:root要用//包含起来
awk -F":" ' $5~/root/{print $3}' /etc/passwd
#打印包含root的行
awk '$0 ~ /root/{print $0}' /etc/passwd
或者
awk '/root/{print $0}' /etc/passwd
#打印不包含root的行
awk '$0 !~ /root/{print $0}' /etc/passwd
或者
awk '!/root/{print $0}' /etc/passwd
10、awk还允许使用布尔运算符"||"(逻辑或)和"&&"(逻辑与)
awk '($1 == "foo") && ($2 == "bar"){print $0}' /etc/passwd
11、FS是设置字段分割符,RS是记录分割符,默认情况RS="\n"即每行是一个记录;
FS=" "即字段是以空格分割;
#以空格分割为记录,以每行为一个字段
BEGIN {
FS="\n"
RS=""
}
{ print $1 "," $2 ","$3 }
12、awk常用的内建变量
FILENAME 当前输入文件的文件名,改变量是只读的;
NR 当前行的行号,该变量是只读的,R代表record;
NF 当前行有多少列,改变量只读;
OFS 输出格式的列分割符,缺省是空格;
FS 输入文件的列分隔符,缺省是连续的空格和Tab;
ORS 输出格式的行分隔符,缺省是换行符;
RS 输入文件的行分割符,缺省是换行符;
$0 整行记录
$1 第一列,$2,$3类推
13、在awk中变量无须定义即可使用,变量在赋值时即已经完成定义。
- shell知识点(一)
- shell知识点回顾一
- shell脚本学习知识点(一)
- shell知识点
- shell知识点
- shell知识点
- 梳理shell编程遗忘的知识点笔记(一)
- 知识点一
- 知识点一
- shell小知识点
- Shell脚本知识点
- shell脚本知识点总结
- shell知识点总结
- linux shell 知识点
- shell中几个知识点
- shell知识点2
- shell 知识点备忘
- shell必懂知识点
- UVA 11137 Ingenuous Cubrency
- 通过.class文件查看JDK版本
- Android 仿flipboard翻页动画实现
- U大师U盘启动盘制作教程 详细图解步骤教你怎么装统(Win7PE精简版)
- windows与虚拟机的Linux文件夹共享问题
- shell知识点(一)
- JavaSE第六十三讲:反射机制大总结
- 杭电1018 Big Number (求阶乘结果的位数)
- 【转】倒排文件索引(Inverted File Index)的建立
- cocos2d-x学习笔记04:CCScene场景切换
- C++串口编程实例
- linux 之 软件安装
- jquery插件autocomplete
- LINQ to Entities 基于方法的查询语法