文章目录

  • awk的命令格式
    • 命令格式
    • 常用命令选项
    • awk内置命令
  • awk的用法实例
    • 获取内容的第2列
    • 获取每一行的行数
  • 内置函数
    • 算数函数
    • 字符串内置函数
    • 时间内置函数

awk的命令格式

命令格式

awk 'BEGIN{ commands } pattern{ commands } END{ commands }'

常用命令选项

命令选项 释义
-F fs fs 只当输入分隔符,fs可以使字符串或者正则表达式
-v var=value 赋值一个用户定义变量,将外部变量传递给awk
-f scriptfile 从脚本文件中读取awk命令

awk内置命令

内置命令 释义
$n 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
$0 这个变量包含执行过程中当前行的文本内容。
ARGC 命令行参数的数目。
ARGIND 命令行中当前文件的位置(从0开始算)。
ARGV 包含命令行参数的数组。
CONVFMT 数字转换格式(默认值为%.6g)。
ENVIRON 环境变量关联数组。
ERRNO 最后一个系统错误的描述。
FIELDWIDTHS 字段宽度列表(用空格键分隔)。
FILENAME 当前输入文件的名。
NR 表示记录数,在执行过程中对应于当前的行号
FNR 同NR :,但相对于当前文件。
FS 字段分隔符(默认是任何空格)。
IGNORECASE 如果为真,则进行忽略大小写的匹配。
NF 表示字段数,在执行过程中对应于当前的字段数。 print $NF答应一行中最后一个字段
OFMT 数字的输出格式(默认值是%.6g)。
OFS 输出字段分隔符(默认值是一个空格)。
ORS 输出记录分隔符(默认值是一个换行符)。
RS 记录分隔符(默认是一个换行符)。
RSTART 由match函数所匹配的字符串的第一个位置。
RLENGTH 由match函数所匹配的字符串的长度。
SUBSEP 数组下标分隔符(默认值是34)。

awk的用法实例

获取内容的第2列

[root@hadoop-master test-awk]# ls -lh
总用量 8.0K
-rwxr-xr-x. 1 root root 60 9月  24 23:06 file2.text
-rw-r--r--. 1 root root  0 9月  24 23:04 filename2
-rwxr-xr-x. 1 root root 45 9月  24 23:06 file.txt
[root@hadoop-master test-awk]# ls -lh|awk '{print $2}'
8.0K
1
1
1

获取每一行的行数

[root@hadoop-master test-awk]# ls -lh|awk '{print NR " " $1}'
1 总用量
2 -rwxr-xr-x.
3 -rw-r--r--.
4 -rwxr-xr-x.

内置函数

算数函数

格式 解释
atan2( y, x ) 返回 y/x 的反正切。
cos( x ) 返回 x 的余弦;x 是弧度。
sin( x ) 返回 x 的正弦;x 是弧度。
exp( x ) 返回 x 幂函数。
log( x ) 返回 x 的自然对数。
sqrt( x ) 返回 x 平方根。
int( x ) 返回 x 的截断至整数的值。
rand( ) 返回任意数字 n,其中 0 <= n < 1。
srand( [expr] ) 将 rand 函数的种子值设置为 Expr 参数的值,或如果省略 Expr 参数则使用某天的时间。返回先前的种子值。

字符串内置函数

格式 解释
gsub( Ere, Repl, [ In ] ) 除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行。
sub( Ere, Repl, [ In ] ) 用 Repl 参数指定的字符串替换 In 参数指定的字符串中的由 Ere 参数指定的扩展正则表达式的第一个具体值。sub 函数返回替换的数量。出现在 Repl 参数指定的字符串中的 &(和符号)由 In 参数指定的与 Ere 参数的指定的扩展正则表达式匹配的字符串替换。如果未指定 In 参数,缺省值是整个记录($0 记录变量)。
index( String1, String2 ) 在由 String1 参数指定的字符串(其中有出现 String2 指定的参数)中,返回位置,从 1 开始编号。如果 String2 参数不在 String1 参数中出现,则返回 0(零)。
length [(String)] 返回 String 参数指定的字符串的长度(字符形式)。如果未给出 String 参数,则返回整个记录的长度($0 记录变量)。
blength [(String)] 返回 String 参数指定的字符串的长度(以字节为单位)。如果未给出 String 参数,则返回整个记录的长度($0 记录变量)。
substr( String, M, [ N ] ) 返回具有 N 参数指定的字符数量子串。子串从 String 参数指定的字符串取得,其字符以 M 参数指定的位置开始。M 参数指定为将 String 参数中的第一个字符作为编号 1。如果未指定 N 参数,则子串的长度将是 M 参数指定的位置到 String 参数的末尾 的长度。
match( String, Ere ) 在 String 参数指定的字符串(Ere 参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从 1 开始编号,或如果 Ere 参数不出现,则返回 0(零)。RSTART 特殊变量设置为返回值。RLENGTH 特殊变量设置为匹配的字符串的长度,或如果未找到任何匹配,则设置为 -1(负一)。
tolower( String ) 返回 String 参数指定的字符串,字符串中每个大写字符将更改为小写。大写和小写的映射由当前语言环境的 LC_CTYPE 范畴定义。
toupper( String ) 返回 String 参数指定的字符串,字符串中每个小写字符将更改为大写。大写和小写的映射由当前语言环境的 LC_CTYPE 范畴定义。
sprintf(Format, Expr, Expr, . . . ) 根据 Format 参数指定的 printf 子例程格式字符串来格式化 Expr 参数指定的表达式并返回最后生成的字符串。

时间内置函数

格式 解释
mktime( YYYY MM dd HH MM ss[ DST]) 生成时间格式
strftime([format [, timestamp]]) 格式化时间输出,将时间戳转为时间字符串 具体格式,见下表.
systime() 得到时间戳,返回从1970年1月1日开始到当前时间(不计闰年)的整秒数

每天学一点儿shell:Linux三剑客——awk命令相关推荐

  1. linux三剑客awk、sed、grep与cut的总结

    在Linux中,一切皆文件,对Linux的操作就是对文件的处理.对文件操作处理最重要的三个命令是grep.sed.awk,它们在业界被称为"三剑客". 三剑客的功能非常强大,但它们 ...

  2. linux awk过滤符号,shell文本过滤之awk命令

    本文信息本文由方法SEO顾问发表于2014-07-1811:27:48,共 2174 字,转载请注明:shell文本过滤之awk命令_[方法SEO顾问],如果我网站的文章对你有所帮助的话,来百度口碑给 ...

  3. linux bin命令解释,Linux:“awk”命令的妙用

    原标题:Linux:"awk"命令的妙用 导读awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理 ...

  4. linux之awk命令学习笔记

    Linux之awk命令学习笔记 前言 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, ...

  5. linux中awk命令_Linux / Unix中的AWK命令

    linux中awk命令 AWK is suitable for pattern search and processing. The script runs to search one or more ...

  6. linux之awk命令格式化输出(printf)使用技巧

    linux之awk命令格式化输出(printf)使用技巧 在使用awk命令的过程中输出的每一列总是对不齐,看着很乱,如下: [root@linuxforliuhj ~]# awk -F ": ...

  7. Linux三剑客(awk、sed、grep) 和 正则表达式

    本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正. 上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式,正则表达式--事先定义好的一些特定字符.及这些特定字符的组 ...

  8. linux下awk命令详解,Linux文件处理awk命令-linux awk命令详解-嗨客网

    Linux文件处理awk命令详解教程 Linux awk命令说明 awk 是一个强大的文本分析工具,相对于 awk 有 3 个不同版本: awk.nawk 和 gawk,未作特别说明,一般指 gawk ...

  9. Linux下awk命令简介

    转载自:http://www.zsythink.net/archives/1336/ 初识awk 我们先来用专业的术语描述一下awk是什么,如果你看不懂,没关系,我们会再用"大白话" ...

最新文章

  1. java之泛型_java之泛型
  2. 体验产品一 | 悦动圈VS咕咚竞品分析报告
  3. 【EasyUI】DataGrid实现表格的筛选过滤、排序
  4. Spring整合RabbitMQ
  5. redux解决了什么问题?
  6. cudnn下载注意事项
  7. Unity运行时输出场景物体及角色为fbx文件
  8. 统计学之假设检验(总体均值、总体比例、总体方差)含例题和解答
  9. 创业者防坑手册:面对强大的资本力量,你该如何正当防卫?
  10. Computer Science | Retrosynthesis:关于逆合成路线规划
  11. RouterOS 自动拨号直至获得指定IP段IP的脚本
  12. rk3328或树莓派开发板系统镜像备份制作剪裁
  13. TIDB-OLTP和OLAP的区别
  14. php计算机毕业设计 基于微信小程序的房屋出租租赁 小程序 uniapp
  15. 【HTML5】html5中列表、表格、表单控件、浮动框架及结构化标签知识详解大全
  16. 现象级吃鸡类游戏软件调研
  17. STM32F4_ADC多通道采样
  18. 供应链金融的三种模式分析
  19. jaeger 链路追踪
  20. 博客园12月份第3周51Aspx源码发布详情

热门文章

  1. 关于ABAP高级顾问应该掌握的技术
  2. ABAP程序:查找TC相关的出口。
  3. 从拼速度到拼质量,农产品上行迎来新拐点
  4. vivo 2019:关于企业文化如何影响手机企业发展的三个追问
  5. java用递归删除文件夹_Java中通过递归调用删除文件夹下所有文件
  6. 串口使用stream_使用SerialPort库进行Node物联网项目开发
  7. python元组的概念_python元组的概念知识点
  8. CTF-攻防世界-reverse进阶-srm-50;(巨详细)
  9. php js vbs,VBScript版的PHP extract()函数
  10. 机器人石材雕刻机_一种石材雕刻机器人的制作方法