一、awk和sed简介
awk和sed是类Unix系统中常用的文本处理工具。awk用于处理数据并产生格式化报表,而sed主要用于在文本编辑器中进行高速的数据替换操作。他们都是以行为单位处理输入文件,且在数据处理过程中可以使用正则表达式来匹配数据。
二、awk的基本用法
awk的基本语法为:“awk [选项参数] ‘pattern {action}’ [filename]”。
其中pattern表示执行的匹配条件,action表示匹配后执行的命令,filename表示待处理的文件名。
例如,我们有一个名为filename.txt的文件,里面包含三列数据,分别为Name, Age和City,我们想要只输出年龄大于18岁的人员信息。
我们可以使用以下命令:
“`bash
awk ‘$2>18{print $0}’ filename.txt
“`
该命令中,$2是指第二列数据(即年龄列),$0是指整行数据。如果第二列数据大于18,则会打印整行数据。
三、sed的基本用法
sed的基本语法为:“sed [选项参数] ‘command’ filename”。
其中command表示要执行的命令,filename表示待处理的文件名。
例如,我们有一个名为filename.txt的文件,里面包含一段文本,我们想要将其中的“abc”替换为“def”。
我们可以使用以下命令:
“`bash
sed ‘s/abc/def/g’ filename.txt
“`
该命令中,s表示替换命令,g表示全局替换。
四、awk/sed常见用法
1. 格式化输出文本内容
awk可以使用printf函数来格式化输出文本内容,常见的用法有:
“`bash
awk ‘{printf(“%-15s %-5d %-15s\n”,$1,$2,$3)}’ filename.txt
“`
其中%-15s表示占位符,-表示左对齐,15表示占15个字符的宽度。
2. 处理CSV文件
awk可以使用FS命令来指定分隔符,常见的用法有:
“`bash
awk -F, ‘{print $1,$NF}’ filename.csv
“`
其中-F,表示使用逗号作为分隔符,$1表示第一列数据,$NF表示最后一列数据。
3. 批量重命名文件
sed可以使用rename命令来批量重命名文件,常见的用法有:
“`bash
ls *.txt | sed ‘s/\(.*\.\)txt/mv & \1md/g’ | sh
“`
其中,ls *.txt表示列出所有的txt文件,sed ‘s/\(.*\.\)txt/mv & \1md/g’表示将文件名中的txt替换为md,并用mv命令进行重命名,最后用sh来执行命令。
五、总结
awk和sed是Linux下常用的文本处理工具,能够大幅度提高用户的工作效率。本文介绍了它们的基本用法及常见用法,希望对读者有所帮助。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/199057.html