awk 一些简单的用法

# 打印每行,并删除第二列

  • awk ‘{ $2 = “”; print }’ file1
  • awk ‘{ $2 = “”;$1 = “”; print }’ test1
# 打印部分文本

bash-3.2$ # 打印文件的前十行 (模拟 “head”)

 

bash-3.2$ awk ‘NR < 11′ test1

 

 

# 打印文件的最后两行 (模拟 “tail -2″

awk ‘{y=x “\n” $0; x=$0};END{print y}’

 

# 打印文件的最后一行 (模拟 “tail -1″

awk ‘END{print}’

 

# 打印第5列等于“abc123″的行

awk ‘$5 == “abc123″‘ file1

 

# 打印指定行之间的内容 (8-12, 包括第8和第12行)

awk ‘NR==8,NR==12′

 

# 打印2,3

✓ awk ‘{print $2, $3}’ file1 > file2

 

# 打印每行的最后一列

awk ‘{ print $NF }’

 

# 打印最后一行的最后一列

awk ‘{ field = $NF }; END{ print field }’

 

# 打印列数超过4的行

awk ‘NF > 4′

 

# 打印最后一列大于4的行

awk ‘$NF > 4′

 

 

选择性的删除某些行:

 

# 删除所有空白行 (类似于 “grep ‘.’ “

awk NF

awk ‘/./’

 

# 删除重复连续的行 (模拟 “uniq”

awk ‘a !~ $0; {a=$0}’

 

# 删除重复的、非连续的行

awk ‘! a[$0]++’                    # 最简练

awk ‘!($0 in a) {a[$0];print}’      # 最有效

 

文本间隔:

 

# 每行后面增加一行空行

awk ‘1;{print “”}’

awk ‘BEGIN{ORS=”\n\n”};1′

 

# 每行后面增加两行空行

awk ‘1;{print “\n”}’

 

# 以文件为单位,在每句行前加上编号 (左对齐)

# 使用制表符 (\t) 来代替空格可以有效保护页变的空白。

awk ‘{print FNR “\t” $0}’ files*

 

其中,0为显示所有列;亦可用1,2来显示1,2列

awk ‘{print FNR “\t” $1,$2}’ test1

 

# 用制表符 (\t) 给所有文件加上连贯的编号。

awk ‘{print NR “\t” $0}’ files*

 

# 计算行数 (模拟 “wc -l”)

awk ‘END{print NR}’

 

# 计算每行之和:

awk ‘{s=0; for (i=1; i<=NF; i++) s=s+$i; print s}’ file1

##其中,{}内同c语句。

 

 

# 打印每行每区域的绝对值

awk ‘{for (i=1; i<=NF; i++) if ($i < 0) $i = -$i; print }’

awk ‘{for (i=1; i<=NF; i++) $i = ($i < 0) ? -$i : $i; print }’

 

 

# 计算所有行所有区域 行数乘以列数

awk ‘{ total = total + NF }; END {print total}’ file

#替换

# 每行用 “bar” 查找替换 “foo”

awk ‘{sub(/foo/,”bar”)}; 1′          # 仅仅替换第一个找到的“foo”

gawk ‘{$0=gensub(/foo/,”bar”,4)}; 1′ # 仅仅替换第四个找到的“foo”

awk ‘{gsub(/foo/,”bar”)}; 1′          # 全部替换

 

# 在包含 “baz” 的行里,将 “foo” 替换为 “bar”

awk ‘/baz/{gsub(/foo/, “bar”)}; 1′

 

# 在不包含 “baz” 的行里,将 “foo” 替换为 “bar”

awk ‘!/baz/{gsub(/foo/, “bar”)}; 1′

 

# 将 “scarlet” 或者 “ruby” 或者 “puce” 替换为 “red”

awk ‘{gsub(/scarlet|ruby|puce/, “red”)}; 1′

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>