linnux-shell知识

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

原文地址:https://www.cnblogs.com/tangpg/p/9237951.html