awk 是单行处理文本
正则: cat test.py | awk '/a/ {print $1}' # 如果test.py中存在a这个字母,就打印所在行的第一列(注意是该列,不是该词)。匹配成功,就 {执行操作}
ex: {print $0} 打印整行 = {print}
其它awk命令用法:awk '{print}' ./test.py
处理所有数据的第n列
两个awk同时使用 :
先打印所有的用户信息(passwd文件),在正则匹配root用户,(匹配到就打印所有信息)
指定以冒号:分割(默认以空格分隔成列):
也阔以指定字符跟个 awk -F'string' '{print $1}' ./test1.txt
awk -F':' 'BEGIN{print "begin"}' {print $1} 'END{print "end"}' ./test1.txt
在{print $1}执行前后分别 打印begin,end
awk跳行读取:
先是找到first所在行,再跳过这一行(打印除了包含first所在行)
显示行号和列数:awk -F: '{print "第"RN"行:" "该行共"NF"列—" $0}' ./test1.txt
-F 以: 将test1.txt 分割成两列
NF和RN都是数字 ,也可以 '{print $NF}' 打印第NF列,NF表示共有n列数据,也就是打印第n列(最后一列)数据,
打印倒数第二列: '{print $(NF-1)}'
######################################
grep实在文件里面搜索目标
grep参数
-i 忽略大小写 -n 显示行号 -s 不显示错误信息 -v 反向查找 -q 不现实任何信息(shell中会用)
if fi
if常用的选项:
-a file 如果文件存在则为真 -d file 如果文件存在并且是目录则为真 -n string 如果字符长度非0则为真 -ne 等于 -lt 不等于 .......
shell脚本中 单引号 双引号 反引号
echo '$SHELL' 单引号会将$转译成不同字符 >>> $SHELL echo "$SHELL" 双引号会保留$, 代表的意义 >>> /bin/bash
反引号 用来申明是命令 ex: `pwd`
也可以: $(pwd)
$是用来调用变量
$? 是查看命令执行的状态,成功返回0,失败返回1