ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

awk笔记

2021-12-14 18:02:17  阅读:148  来源: 互联网

标签:输出 分隔符 笔记 awk printf 文本 输入


awk笔记

awk其实是一门编程语言,它支持条件判断、数组、循环等功能。所以,我们也可以把awk理解成一个脚本语言解释器。

grep、sed、awk被称为Linux中的“三剑客”

grep:更适合单纯的查找或匹配文本

sed:更适合编辑匹配到文本

awk:更适合格式化文本,对文本进行较复杂格式处理

awk基础

基本语法:awk [options] ‘program’ file1 , file2 …

$

$num:标识第几列

$0:标识一整行

$NF:标识最后一列

注意:$1这种内置变量的外侧不能加入双引号,否则$1会被当做文本输入

awk’{print $1 $2}'表示每行分割后,将第一列(第一个字段)和第二列(第二个字段)连接在一起输出

awk’{print $1,$2}'表示每行分割后,将第一列(第一个字段)和第二列(第二个字段)以输出分隔符隔开后显示

BEGIN

BEGIN模式:指定了处理文本之前需要执行的操作

END

END模式:指定了处理完所有行之后所需要执行的操作

awk分隔符

FS:输入分隔符

输入分隔符,英文原文为field separator,此处简称为FS

输入分隔符,默认是空白字符(即空格),awk默认以空白字符为分隔符对每一行进行分割。

OFS:输出分割符

输出分割符,英文原文为output field separator,此处简称为OFS

awk将每行分割后,输出在屏幕上的时候,以什么字符作为分隔符,awk默认的输出分隔符也是空格。

awk变量

内置变量

FS:输入分隔符,默认为空白字符

OFS:输出字段分隔符,默认为空白字符

RS:输入记录分隔符(输入换行符),指定输入时的换行符

ORS:输出记录分隔符(输出换行符),输出时用指定符号代替换行符

NF:number of Field,当前行的字段的个数(即当前行被分割成了几列),字段数量

NR:行号,当前处理的文本的行号

FNR:各文件分别计数的行号

FILENAME:当前文件名

ARGC:命令行参数的个数

ARGV:数组,保存的是命令行所给定的各参数

自定义变量

方法一:-v varname=value 变量名区分字符大小写

方法二:在program中直接定义

awk格式化

printf

awk中使用printf动作注意点

  1. 使用printf动作输出的文本不会换行,如需要换行,可以在对应的“格式替换符”后加入“/n”进入转义
  2. 使用printf动作时,“指定的格式”与“被格式化的文本”之间,需要用“逗号”隔开
  3. 使用printf动作时,“格式”中的“格式替换符”必须与“被格式化的文本”一一对应

教程网址:https://www.zsythink.net/archives/1336

标签:输出,分隔符,笔记,awk,printf,文本,输入
来源: https://blog.csdn.net/Doudou_4174/article/details/121934071

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有