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动作注意点
- 使用printf动作输出的文本不会换行,如需要换行,可以在对应的“格式替换符”后加入“/n”进入转义
- 使用printf动作时,“指定的格式”与“被格式化的文本”之间,需要用“逗号”隔开
- 使用printf动作时,“格式”中的“格式替换符”必须与“被格式化的文本”一一对应
教程网址:https://www.zsythink.net/archives/1336
标签:输出,分隔符,笔记,awk,printf,文本,输入 来源: https://blog.csdn.net/Doudou_4174/article/details/121934071
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。