每天学一点儿shell:Linux三剑客——awk命令
文章目录
- 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命令相关推荐
- linux三剑客awk、sed、grep与cut的总结
在Linux中,一切皆文件,对Linux的操作就是对文件的处理.对文件操作处理最重要的三个命令是grep.sed.awk,它们在业界被称为"三剑客". 三剑客的功能非常强大,但它们 ...
- linux awk过滤符号,shell文本过滤之awk命令
本文信息本文由方法SEO顾问发表于2014-07-1811:27:48,共 2174 字,转载请注明:shell文本过滤之awk命令_[方法SEO顾问],如果我网站的文章对你有所帮助的话,来百度口碑给 ...
- linux bin命令解释,Linux:“awk”命令的妙用
原标题:Linux:"awk"命令的妙用 导读awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理 ...
- linux之awk命令学习笔记
Linux之awk命令学习笔记 前言 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, ...
- linux中awk命令_Linux / Unix中的AWK命令
linux中awk命令 AWK is suitable for pattern search and processing. The script runs to search one or more ...
- linux之awk命令格式化输出(printf)使用技巧
linux之awk命令格式化输出(printf)使用技巧 在使用awk命令的过程中输出的每一列总是对不齐,看着很乱,如下: [root@linuxforliuhj ~]# awk -F ": ...
- Linux三剑客(awk、sed、grep) 和 正则表达式
本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正. 上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式,正则表达式--事先定义好的一些特定字符.及这些特定字符的组 ...
- linux下awk命令详解,Linux文件处理awk命令-linux awk命令详解-嗨客网
Linux文件处理awk命令详解教程 Linux awk命令说明 awk 是一个强大的文本分析工具,相对于 awk 有 3 个不同版本: awk.nawk 和 gawk,未作特别说明,一般指 gawk ...
- Linux下awk命令简介
转载自:http://www.zsythink.net/archives/1336/ 初识awk 我们先来用专业的术语描述一下awk是什么,如果你看不懂,没关系,我们会再用"大白话" ...
最新文章
- java之泛型_java之泛型
- 体验产品一 | 悦动圈VS咕咚竞品分析报告
- 【EasyUI】DataGrid实现表格的筛选过滤、排序
- Spring整合RabbitMQ
- redux解决了什么问题?
- cudnn下载注意事项
- Unity运行时输出场景物体及角色为fbx文件
- 统计学之假设检验(总体均值、总体比例、总体方差)含例题和解答
- 创业者防坑手册:面对强大的资本力量,你该如何正当防卫?
- Computer Science | Retrosynthesis:关于逆合成路线规划
- RouterOS 自动拨号直至获得指定IP段IP的脚本
- rk3328或树莓派开发板系统镜像备份制作剪裁
- TIDB-OLTP和OLAP的区别
- php计算机毕业设计 基于微信小程序的房屋出租租赁 小程序 uniapp
- 【HTML5】html5中列表、表格、表单控件、浮动框架及结构化标签知识详解大全
- 现象级吃鸡类游戏软件调研
- STM32F4_ADC多通道采样
- 供应链金融的三种模式分析
- jaeger 链路追踪
- 博客园12月份第3周51Aspx源码发布详情
热门文章
- 关于ABAP高级顾问应该掌握的技术
- ABAP程序:查找TC相关的出口。
- 从拼速度到拼质量,农产品上行迎来新拐点
- vivo 2019:关于企业文化如何影响手机企业发展的三个追问
- java用递归删除文件夹_Java中通过递归调用删除文件夹下所有文件
- 串口使用stream_使用SerialPort库进行Node物联网项目开发
- python元组的概念_python元组的概念知识点
- CTF-攻防世界-reverse进阶-srm-50;(巨详细)
- php js vbs,VBScript版的PHP extract()函数
- 机器人石材雕刻机_一种石材雕刻机器人的制作方法