linux 打印my.txt文件的第10-15行
#打印my.txt文件的第10-15行 sed =stream editor
sed -n '10,15p' my.txt
-n 选项告诉 sed 不要自动打印每一行。
'10,15p' 是 sed 的脚本,告诉 sed 打印文件的第 10 行到第 15 行。p 代表 print,即打印。
#打印my.txt文件的第10-15行 awk 是三个人名字各取了一个字母
awk 'NR>=10 && NR<=20' my.txt
常用的awk命令示例:
打印文件的所有行:
awk '{ print $0 }' filename
打印文件的第10行到第20行:
awk 'NR>=10 && NR<=20' filename
打印包含特定文本的所有行:
awk '/pattern/' filename
打印每行的第一个字段:
awk '{ print $1 }' filename
打印每行的最后一个字段:
awk '{ print $NF }' filename
打印每行的字段总数:
awk '{ print NF }' filename
使用BEGIN和END块:
awk 'BEGIN { print "Start processing" } { print $0 } END { print "End processing" }' filename
计算某个字段的总和:
awk '{ sum += $1 } END { print "Sum:", sum }' filename
替换文本并输出到另一个文件:
awk '{gsub(/old/,"new"); print}' filename > newfile
shell awk与sed区别
awk
和 sed
都是 Unix/Linux 系统中的文本处理工具,它们各自有独特的用途和特点:
-
用途:
awk
: 主要用于文本处理,特别是用于复杂的文本分析和报告生成。它可以读取文件,并对数据进行模式匹配、字段提取、计数、求和等操作。sed
: 主要用于文本的过滤和替换。它是一个流编辑器,用于执行基础的文本转换,如查找和替换文本字符串。
-
语法:
awk
: 使用模式/动作对来处理文本。例如,awk '{print $1}'
会打印每一行的第一个字段。sed
: 使用正则表达式来处理文本。例如,sed 's/old/new/g'
会将文本中的 "old" 替换为 "new"。
-
编程能力:
awk
: 具有更强的编程能力,支持变量、控制结构(如 if 语句、循环等)和函数。sed
: 主要用于简单的文本替换,不具备awk
那样的编程能力。
-
复杂性:
awk
: 功能强大,但语法相对复杂,适合复杂的数据处理任务。sed
: 语法简单,易于学习和使用,适合快速的文本替换和过滤任务。
-
性能:
awk
: 由于其强大的功能,处理速度可能不如sed
快,特别是在简单的文本替换任务中。sed
: 由于专注于流编辑,通常在执行简单任务时性能更好。
-
适用场景:
awk
: 适合需要进行复杂数据处理和分析的场景,如生成报表、统计数据等。sed
: 适合快速文本替换、删除或插入文本行等简单编辑任务。
总结来说,awk
和 sed
各有所长,选择哪个工具取决于你的具体需求。如果你需要进行复杂的文本分析和数据处理,awk
是更好的选择。如果你只需要进行简单的文本替换或过滤,sed
可能更加适合。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2013-07-29 MFC学习 socket