searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

AWK入门

2024-05-07 09:41:59
11
0
  1. 基本用法
    1. $0 当前行
      1. e.g.: awk '{print $0}' demo.txt
    1. $1,$2,$3代表空格或制表符分割后的第一、二、三个字段
      1. e.g.: echo 'this is a test' | awk '{print $3}'
    1. 指定特殊符号进行分割
      1. e.g.: awk -F ':' '{print $1}' demo.txt
  1. 变量
    1. NF表示当前行多少个字段,$NF代表最后一个字段
      1. e.g.: echo 'this is a test' | awk '{print $NF}'
      2. e.g.: awk -F ':' '{print $1, $(NF-1)}' demo.txt
    1. NR:当前处理行数
    2. 内置变量:
      1. FILENAME:当前文件名
      2. FS:字段分隔符,默认是空格和制表符。
      3. RS:行分隔符,用于分割每一行,默认是换行符。
      4. OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。
      5. ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。
      6. OFMT:数字输出的格式,默认为%.6g。
  1. 函数
    1. toupper()
      1. e.g.: awk -F ':' '{print toupper($1)}' demo.txt
      2. 内置函数:
        1. tolower():字符转为小写。
        2. length():返回字符串长度。
        3. substr():返回子字符串。
        4. sin():正弦。
        5. cos():余弦。
        6. sqrt():平方根。
        7. rand():随机数。
  1. 条件
    1. 格式:输出条件要在动作之前 eg: awk '条件 动作' 文件名
      1. e.g.: awk '-F' ':' '/usr/ {print $1}' demo.txt
      2. e.g.: awk -F ':' 'NR % 2 == 1 {print $1}' demo .txt
      3. e.g.: awk -F ':' '$1 == "root" || $1 == "bin" {print $1}' demo.txt
  1. 控制语句
    1. IF语句
      1. e.g.: awk -F ':' 'if ($1 > "m") print $1' demo.txt
    1. FOR语句
      1. e.g.: awk '{for(i=1;i<=NF;i++) print"Field",i,":",$i}' demo.txt
    1. WHILE语句
      1. e.g.: awk 'BEGIN{i=1;while(i<=5) print"Iteration",i;i++}'
0条评论
0 / 1000
l****n
2文章数
0粉丝数
l****n
2 文章 | 0 粉丝
l****n
2文章数
0粉丝数
l****n
2 文章 | 0 粉丝
原创

AWK入门

2024-05-07 09:41:59
11
0
  1. 基本用法
    1. $0 当前行
      1. e.g.: awk '{print $0}' demo.txt
    1. $1,$2,$3代表空格或制表符分割后的第一、二、三个字段
      1. e.g.: echo 'this is a test' | awk '{print $3}'
    1. 指定特殊符号进行分割
      1. e.g.: awk -F ':' '{print $1}' demo.txt
  1. 变量
    1. NF表示当前行多少个字段,$NF代表最后一个字段
      1. e.g.: echo 'this is a test' | awk '{print $NF}'
      2. e.g.: awk -F ':' '{print $1, $(NF-1)}' demo.txt
    1. NR:当前处理行数
    2. 内置变量:
      1. FILENAME:当前文件名
      2. FS:字段分隔符,默认是空格和制表符。
      3. RS:行分隔符,用于分割每一行,默认是换行符。
      4. OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。
      5. ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。
      6. OFMT:数字输出的格式,默认为%.6g。
  1. 函数
    1. toupper()
      1. e.g.: awk -F ':' '{print toupper($1)}' demo.txt
      2. 内置函数:
        1. tolower():字符转为小写。
        2. length():返回字符串长度。
        3. substr():返回子字符串。
        4. sin():正弦。
        5. cos():余弦。
        6. sqrt():平方根。
        7. rand():随机数。
  1. 条件
    1. 格式:输出条件要在动作之前 eg: awk '条件 动作' 文件名
      1. e.g.: awk '-F' ':' '/usr/ {print $1}' demo.txt
      2. e.g.: awk -F ':' 'NR % 2 == 1 {print $1}' demo .txt
      3. e.g.: awk -F ':' '$1 == "root" || $1 == "bin" {print $1}' demo.txt
  1. 控制语句
    1. IF语句
      1. e.g.: awk -F ':' 'if ($1 > "m") print $1' demo.txt
    1. FOR语句
      1. e.g.: awk '{for(i=1;i<=NF;i++) print"Field",i,":",$i}' demo.txt
    1. WHILE语句
      1. e.g.: awk 'BEGIN{i=1;while(i<=5) print"Iteration",i;i++}'
文章来自个人专栏
开发工具
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0