• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

XiaoXiaoli

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

shell编程_awk

awk擅长处理的是一行数据的列。

awk会对数据流中的每一行文本执行一遍程序脚本。 

 

 awk命令格式

  awk options program file

 

 awk的内置变量

内置变量名称 内置变量含义
NF 字段的个数
NR 行号,从1开始计数

 

 

 

 

 

从命令行读取程序脚本

  1 awk的程序脚本必须放在{}中定义。

  2 {}必须在单引号中。

  如: awk '{print "Hello World}'

 

awk中的print命令

  它会将文本打印到STDOUT中。

  awk '{print "Hello world"}' 这里,程序不会有任何输出,原因是没有指定文件名。awk会从STDIN中接收数据。

 

使用数据字段变量(内置变量$0-$n)

  awk会自动给每行中的每个数据元素分配一个变量。

  $0 代表整个文本行。

  $1 代表文本行中的第1个数据字段。

  $2 代表文本行中的第2个数据字段。

  $n 代表文本行中的第n个数据字段。

  每个数据字段在文本行中都是通过字段分割符来进行划分的。

  默认的字段分割符是空格或制表符。

  设置字段分割符可以用参数 -F指定。

  如 awk -F: '{print $1}' /etc/passwd

 

在程序脚本中使用多个命令

  例:

    echo "My name is Rich" | awk '{$4="Christine": print $0}' 

    My name is Christine

 

 在处理数据前执行脚本

  BEGIN关键字,它会强制gwk在读取数据前指向BEGIN关键字后指定的程序脚本。

 

结束awk程序,使用CTRL+D。CTRL+D会产生一个EOF(End-of-File)符号。

 

案例

  awk -F "|" '{print NF}' 

  -F "|" 设置分隔符号。

  内置变量NF表示,每一行分隔的字段的个数。

  这句话的整体意思为,使用竖杠拆分源数据,将每一行中分割的数据字段个数打印出来。

 

posted on 2021-02-24 22:38  XiaoXiaoli  阅读(88)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3