第二章 变量和运算符
1、set 为本地变量
2、readonly 变量 设置为只读变量 readonly 变量不能unset
Ø 环境变量用于所有用户进程(经常称了为进行)。登录进程称为父进程。Shell中执行的用户进程均称为子进程。不像本地变量(只用于现在的shelll)环境变量可用于所有子进程,这包括编辑器、脚本和应用。
Ø $HOME/.bash_profile (/etc/profile)
Ø Export
Ø Env
$(Variable name) |
显示实际值 |
$(Variable name:+value) |
如果设置了name,则显示毁value否则为空 |
$(Variable name:?value) |
如果未设置name,则显示用户定义value |
$(Variable name:-value) |
如果未设置name,则显示其值value |
$(Variable name:=value) |
如果未设置name,设置其值,并显示 |
5.2基本元字符集及其含义
字符 |
含义 |
^ |
只匹配行首 |
$ |
只匹配行尾 |
* |
匹配0个或多个此单字符 |
[] |
只匹配[]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[]内字符序列范围,如用[1-5]代替[12345] |
\ |
只用来屏蔽一个元字符的特殊含义 |
. |
只匹配任意单字符 |
Pattern\{n\} |
只用来匹配前面pattern出现次数。n为次数. |
Pattern\{n,\} |
含义同上,但次数最少为n |
Pattern\{n,m\} |
含义同上,但pattern出现次数在n与m之间 |
第五章 46:26
5.13 grep介绍
Ø Grep是unix和LINUX中使用最广泛的命令之一
Ø 对文本文件进行模式查找
Ø Grep有三种变形
n Grep:标准grep命令
n Egrep:扩展grep,支持基本及扩展的正则表达式
n Fgrep:快速grep
Ø Grep一般格式为:
n grep [选项]基本正则表达式[文件]
n 字符串参数最好采用双引号括起来,一是以防被误解为shell命令,二是可以用来查找多个单词组成的字符串。
Grep命令选项
Ø -c 只输出匹配行的计数
Ø -i 不区分大小写(只适用于单字符)
Ø -h 查询多文件时不显示文件名
Ø -H 显示文件名。
Ø -l 查询多文件时只输出包含匹配字符的文件名。
Ø -n 显示匹配行及行号
Ø -s 不显示不存在或无匹配文本的错误信息
Ø -v 显示不包含匹配文本的所有行
grep 命令类名
类 |
等价的正则表达式 |
[[:upper:]] |
[A-Z] |
[[:alnum:]] |
[0 |
[[:lower:]] |
[a-z] |
[[:space:]] |
空格或tab键 |
[[:digit:]] |
[0-9] |
[[:alpha:]] |
[a-zA-Z] |
5.14 awk介绍
Ø 可从文件或字符串中基于指定规则浏览和抽取信息
Ø 是一种自解释的编程语言
Ø 三种方式调用awk:
n 使用行方式: awk [-F filed-spearator] `command` input-file
n awk脚本: 所有awk命令插入一个文件,并使awk程序可执行,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。
n awk命令插入一个单独文件
awk –f awk-script-file input-file
Ø awk 脚本由各种操作和模式组成
Ø 模式和动作
n 模式部分决定动作语句何时触发及触发事件。(BEGIN,END)
n 动作对数据进行处理,放在大括号{}内指明。(print)
Ø 分割符、域和记录
n awk执行时,其浏览域标记为$1,$2,….$n。这种方法称为域标识。$0为所有域。
n 注意执行时不要混淆符号 $ 和shell提示符 $ ,它们是不同的。
Ø 花样百出
例:
awk –F “:” ‘{print $1 “ home dictionary is ” $6 }’ passwd
awk –F “:” ‘BEGIN {print “User\t\tHOme Dictionary\n------------------------------------”} {print $
ü awk中的特殊元字符:+,?
ü 匹配操作符:~,!~
ü cat score.txt | awk ‘$0 ~ /218.79.131.96/’
ü awk ‘$0 ~ /218.79.131.96/’ score.txt
ü awk ‘{if($1==”218.79.
ü man awk