Linux学习笔记13 grep,egrep,bash变量

来源:互联网 发布:mac npm安装webpack 编辑:程序博客网 时间:2024/06/05 07:34

1.grep

grep [OPTIONS] PATTERN filename
根据模式搜索文本 并将符合模式的文本显示出来
Pattern模式:文本字符和正则表达式的元字符组合而成匹配条件

选项

  • -i: 忽略大小写
  • --color: 匹配到的字符串加颜色
  • -v --invert-match:没有被模式匹配到的行
  • -o: 只显示被模式匹配到的字符串
  • -E: extended regular expression 扩展正则表达式 = 命令egrep
  • -A --after-context=: 匹配项后几行
  • -B --before-context=: 匹配项前几行
  • -C --context: 匹配项前后几行

2. 正则表达式

元字符:

  • .: 任意单个字符
  • []: 匹配任意范围内的单个字符
  • [^]: 匹配任意范围外的单个字符
    [:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]

匹配字符个数:

  • *: 匹配其前面字符任意次数
  • .*: 任意长度任意字符
  • \?: 匹配其前面的字符1次或0次
  • \{m,n\}: 匹配其前面的字符>=m次 <=n次

位置锚定:

  • ^: 行首 次字符后面的任意内容必须出现在行首
  • $: 行尾 次字符后面的任意内容必须出现在行尾
  • \<: 单词出现在词首
  • \>: 单词出现在词尾

分组:
\(\)
\1,\2,\3: 引用前面的分组

3. 扩展正则表达式

次数匹配:
+: 匹配其前面的字符至少1次
或者
a|b: a或者b
c|Cat 意思是c或者Cat字符 (c|C)at

IPv4:
5类 A B C D E
A: 1-127
B: 128-191
C: 192-223

4.bash

bash变量类型:

  • 环境变量
    export VARNAME=VALUE
    脚本在执行时会启动一个shell进程
    对当前shell及其子shell有效
  • 本地变量
    set VARNAME=VALUE: 作用域为当前代码段 set可以省略
    unset VARNAME: 释放变量
    使用VARNAMEVARNAME引用
[root@localhost tmp]# ANIMAL="pig"[root@localhost tmp]# echo "The animal is ${ANIMAL}s"The animal is pigs
  • 局部变量
    local VARNAME=VALUE: 作用于为当前代码段
  • 位置变量
    $1,$2,$3.... 引用脚本参数
    shift n
  • 特殊变量
    $?:上一个命令执行状态返回值:
    $#: 参数的个数
    $*: 参数列表
    $@: 参数列表
[root@localhost ~]# ls /varrls: cannot access /varr: No such file or directory[root@localhost ~]# echo $?2[root@localhost ~]# lss-bash: lss: command not found[root@localhost ~]# echo $?127[root@localhost ~]# lsanaconda-ks.cfg  demo.sh    Downloads  post-install      Templates  Videosdemo             Desktop    Music      post-install.log  testdemofile         Documents  Pictures   Public            test_dir[root@localhost ~]# echo $?0

查询状态返回代码(0-255)
0:正确执行
1-255: 错误执行:1,2,127系统预留

/dev/null: 软件模拟设备, bit bucket,数据黑洞

查看当前shell中的环境变量:
printenv
env
export

条件测试的表达:
[expression]
[[expression]]
test expression

整数比较:
-eq: 测试两个整数是否相等 $A -eq $B
-ne: 测试两个整数是否不等: $A -ne $B
-gt: 大于
-lt:小于
-ge: 大于或等于
-le:小于或等于

字符测试:
==: 测试是否相等
!=: 测试是否不等
>
<
-n string: 测试字符串是否为空
-s string: 测试字符串是否不空

命令间的逻辑

变量名称: 只能包含字母、数字和下划线,并且不能数字开头:不应该跟系统中已有的环境变量重名

if 判断条件; then
statement1
statement2

else
statement3
statement4
fi

shell算数表达式:
A=3
B=5
1. let算术运算表达式
let C=$A+$B
2.$[算术表达式]
C=$[ $A+$B ]
3.$((算数表达式))
C=$(($A+$B))
4.expr算术运算表达式,表达式中各操作数及运算符之间有空格,而且要使用命令引用
C=`expr $A + \$B`

exit: 退出脚本
exit NUMBER: NUMBER代表状态码

0 0
原创粉丝点击