Day10-Linux-awk和shell编程初步

来源:互联网 发布:韩国人交友软件 编辑:程序博客网 时间:2024/05/17 02:49
1 awk

  格式: awk -选项 '处理' 输入

  awk -F : '{print $1}' file

  -F指定分隔符, 默认是空格

  $1 分割后的第一部分

  $0 获得所有部分 

  NF 表示以分隔符分割后一共有多少段

  $NF 最后一段

  NR 显示行号

  

  通过NR来控制输出的行

  

  通过正则表达式来控制输出

  

    注意要使用双引号

    注意要使用==或者>=等比较符号

    如果要传入参数 可用-v来限定

      

  

    针对行的正则表达式

  

    其中~用于指定针对每行的某一部分进行正则匹配

2 补充命令

1 sort

  可以将输入的内容按字典顺序排序, 但是只是针对行的排序

2 uniq

  去除重复的行

  uniq -c

    显示重复行的信息

3 cut

  效果等同于awk

  -d 指定分割符

  -f 指定获得的分组

    cut -d : -f1.3

4 du

  du -sh 路径

  查看文件或者文件夹大小

5 find

  find 查找点 -type 文件类型 -name 文件名(一般用通配符) -size 文件大小

    文件类型 常用的有f 普通文件

    -size可以由多个 -表示小于 +表示大于

6 scale和bc

  echo 'scale=2;30/100' | bc -l

3 shell编程

3.1 shell的基本

  shell脚本可读, 必须要有可执行权限

  shell脚本是从上往下逐行解释执行的

  shell脚本的第一行往往是

    #! shell解释器文件路径

    #! /bin/bash

  shell的注释是以#开头的

  shell脚本的输出

    echo 输出字符串等

    echo "hello world"

  shell脚本一般是以.sh结尾

  执行shell脚本的方法

    ./shell脚本名

    ./hello.sh

  shell在赋值的时候等号前后不能有空格, 这个别的语言不同

  变量的定义之后 可以用unset 变量名, 取消该变量

  $HISTSIZE 查看history的缓存最大数量

  $PS1 用于设定命令号首部固定的样式模式

  在shell中, 要想执行运算最好用[]包裹起来, 且调用变量的值的时候要用$

  ((可以在里面直接运行数学运算))

3.2 条件测试

  测试结果用$?表示 0表示正确 1表示错误

  通过echo $?来输出显示

  数值测试

    [ 数值1 关系运算符 数值2 ]

    关系运算符有:

      -eq (equal) 相等

      -ne (not equal) 不相等

      -gt 大于

      -lt 小于

      -ge 大于等于

      -le 小于等于

  字符串测试

    [ 关系运算符 字符串 ]

    [ 字符串1 关系运算符 字符串2 ]

    关系运算符

      = 相等

      != 不相等

      -z 为空

      -n 不为空

# [ "abc" = "abc" ]# echo $?0# [ "abc" = "cba" ]# echo $?1

  文件状态测试

    [ 关系运算符 字符串 ]

    运算符

    

    

  条件测试的逻辑操作符

  -a 逻辑与

  -o 逻辑或

  ! 逻辑否

    

3.3 控制结构

  shell的控制结构有if-then-else, case, for, while, until

  if-then-else的基本语法格式如下

    

  case的基本语法格式如下

    

  例子

    

    

  for循环的基本语法格式

    

  例子

     

    

   expr命令计数器

    expr 数值1 运算符 数值2

    常用的有+  -   \*   /四种

  while

    

  until的结果与while一致

3.4 脚本参数交互

  运行时传入参数

  

  

  

  用户交互

    read 变量1 [变量2...]

0 0
原创粉丝点击