大一升大二暑期学校 linux系统基础 day4 20240723
一. awk
awk
是一个强大的文本处理工具,用于模式扫描和处理语言。它非常适合用来处理结构化数据,如表格和列数据。以下是一些基本的 awk
用法和示例:
基本语法
awk
的基本语法如下:
awk 'pattern { actions }' input-file
pattern
:一个条件表达式,可以是正则表达式或固定字符串。actions
:当模式匹配时执行的一系列命令。input-file
:要处理的输入文件,如果不指定,则默认为标准输入(stdin)。
示例
-
打印每一行:
awk '{ print $0 }' filename.txt
这个命令会打印
filename.txt
文件的每一行。 -
打印特定列:
awk '{ print $1 }' filename.txt
这个命令会打印
filename.txt
文件的每一行的第一个字段(列)。 -
基于条件打印行:
awk '/pattern/ { print $0 }' filename.txt
这个命令会打印包含 "pattern" 字符串的所有行。
-
计算行数:
awk 'END { print NR }' filename.txt
NR
是一个内置变量,代表当前处理到的行号。END
模式在输入文件处理完毕后执行一次。 -
字段计数:
awk '{ count[$1]++ } END { for (key in count) print count[key] }' filename.txt
这个命令会统计
filename.txt
文件中第一列中每个不同值的出现次数。 -
行选择:
awk 'NR > 10 && NR < 20 { print $0 }' filename.txt
这个命令会打印第 11 到 19 行的内容。
-
使用内置变量:
awk '{ if (length($0) > 80) print "Line too long: " $0 }' filename.txt
这个命令会检查每行的长度,如果超过 80 个字符,就打印出该行。
-
字段操作:
awk '{ print $1, toupper($2) }' filename.txt
这个命令会打印每行的第一个字段和第二个字段的转换为大写的内容。
-
多条件匹配:
awk '$1 == "条件1" && $2 ~ /条件2/ { actions }' filename.txt
这个命令会同时检查第一列是否等于 "条件1" 和第二列是否匹配正则表达式 "条件2"。
-
格式化输出:
awk '{ printf "%-10s %-10s\n", $1, $2 }' filename.txt
这个命令会格式化输出,使每个字段宽度为 10 个字符,左对齐。
awk
的功能非常丰富,可以进行复杂的文本处理和数据操作。以上示例只是 awk
功能的一部分。通过结合使用不同的模式、动作和内置变量,你可以完成各种文本处理任务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律