2
【笔记】Awk学习笔记
source link: https://feiju12138.github.io/2022/07/02/Awk%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
【笔记】Awk学习笔记
2022-07-022022-07-06
4
Awk学习笔记
awk 选项 优先级{处理方式} 文件
指定列分隔符
- 默认为空格符
awk -F "列分隔符" 优先级{处理方式} 文件
指定变量及其初始值
awk -v "变量名=变量值" 优先级{处理方式} 文件
BEGIN
:标识处理数据流之前要做的事PROGRAMME
:标识处理数据流做的事END
:标识处理数据流之后要做的事
awk 选项 BEGIN{处理数据流之前}{处理数据流}END(处理数据流之后)
输出指定列(字段)
$0
:打印每一行的所有列$N
:打印每一行的第N列$NF
:打印每一行的最后列
awk '{print $0}' <file>
输出指定行(记录)
N
:指定行
awk 'NR==N{print $0}'
指定列分隔符
- 列分隔符默认为空格或制表符
- 可以使用
-F
修改列分隔符
awk -F "分隔符" 'NR==N{print $0}'
awk -F分隔符 'NR==N{print $0}'
输出字符串
- 在输出语句中添加字符串
awk '{print $1 "字符串" $2}' <file>
分隔多组数据
- 使用
,
分隔多组数据,输出的结果会用一个空格进行分隔 - 等价于添加空格字符串
awk '{print $1,$2}' <file>
awk '{print $1" "$2}' <file>
变量的定义和使用
awk '{变量名=变量值;print 变量名}' <file>
数组的的定义和使用
awk '{数组名[下标]=值;print 数组名[下标]}' <file>
=
>
、<
、==
、>=
、<=
、!=
结果为真返回1,结果为假返回0
+
、-
、*
、/
、%
、**
、++
、--
&&
、||
模糊匹配运算
~
、!~
awk '{变量~比较的数据}' <file>
awk '{变量!~比较的数据}' <file>
- 在处理数据之前的环境变量配置
awk 'BEGIN{FIELDWIDTHS="第一列列宽 第二列列宽 ..."}' <file>
指定源数据的列分隔符
- 默认为空格符
awk 'BEGIN{FS="列分隔符"}' <file>
指定输出后的列分隔符
awk 'BEGIN{OFS="列分隔符"}' <file>
指定源数据的行分隔符
- 默认为换行符
awk 'BEGIN{RS="行分隔符"}' <file>
指定输出后的行分隔符
awk 'BEGIN{ORS="行分隔符"}' <file>
awk '{
if (判断条件)
结果为真执行的语句
}' <file>
awk '{
if (判断条件)结果为真执行的语句}' <file>
awk '{
if (判断条件)
结果为真执行的语句
else
结果为假执行的语句
}' <file>
awk '{
if (判断条件)结果为真执行的语句;else 结果为假执行的语句}' <file>
for循环
awk '{
for (i=0;i<循环次数;i++)
循环执行的语句
}' <file>
awk '{
for (i=0;i<循环次数;i++)循环执行的语句}' <file>
while循环
awk '{
while (循环条件)
循环执行的语句
}' <file>
awk '{
while (循环条件)循环执行的语句}' <file>
do…while循环
awk '{
do{
循环执行的语句
}while (循环条件)
}' <file>
awk '{do{循环执行的语句}while(循环条件)}' <file>
break跳出循环
awk '{
while (循环条件)
循环执行的语句
if (判断条件)
结果为真执行的语句
break
}' <file>
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK