AWK和SED参考

AWK 基础

# 结构:awk '模式 { 动作 }' 文件 # 打印指定列 awk '{print $1, $3}' file.txt # 字段分隔符 awk -F: '{print $1}' /etc/passwd awk -F',' '{print $2}' data.csv # 模式匹配 awk '/error/ {print}' logfile awk '$3 > 100 {print $1, $3}' data.txt # BEGIN 和 END 块 awk 'BEGIN{sum=0} {sum+=$1} END{print "Total:", sum}' nums.txt # 内置变量 # NR = line number, NF = number of fields # FS = field sep, OFS = output field sep awk 'NR==5' file # 打印第5行 awk 'NF==3' file # 有3个字段的行

AWK 实际示例

# 求第2列之和 awk '{sum+=$2} END{print sum}' data.txt # 计数 awk '{count[$1]++} END{for(k in count) print k, count[k]}' log.txt # 打印两个模式之间的行 awk '/START/,/END/' file.txt # 重新格式化 CSV awk -F',' 'BEGIN{OFS="\t"} {print $2,$1,$3}' input.csv

SED 基础

# 替换每行第一个匹配 sed 's/old/new/' file.txt # 全局替换 sed 's/old/new/g' file.txt # 原地编辑(备份) sed -i.bak 's/http:/https:/g' config.txt # 删除匹配行 sed '/^#/d' file.txt # 删除注释行 sed '/^$/d' file.txt # 删除空行 # 打印指定行号 sed -n '5p' file.txt # 打印第5行 sed -n '5,10p' file.txt # 打印5到10行 # 插入/追加 sed '3i\new line' file # 在第3行前插入 sed '3a\new line' file # 在第3行后追加