shell脚本sed awk
1 删除第一行 2 3 sed '1d' test.txt 假装执行 4 5 sed -i '1d' test.txt 执行 6 7 从第二行删除到行尾 8 9 sed '2,$d' test.txt 10 11 sed -i '2,$d' test.txt 12 13 sed -i '2,4d' test.txt 删除2到4行 14 15 删除以aaa开头的行 16 17 sed '/^aaa/d' test.txt 18 19 sed -i '/^aaa/d' test.txt 20 21 打印从5行开始 到第一个aaa开始的所有的行 22 23 sed -n '5,^aaa/p' test.txt #p: print 打印 24 25 一个sed执行多条命令 26 27 1.删除第一行到第五行 28 29 2.把小写的my变成MY 30 31 sed -e '1,5d' -e 's/my/MY/' test.txt 32 33 r:读取 插入aaa开头的下面 w写入 34 35 sed '/aaa/r /etc/passwd' test.txt 36 37 把包含aaa的都写入文件里 38 39 sed '/aaa/w /tmp/t2/txt' test.txt 40 41 以aaa开头的下面追加一行 append追加一行 42 43 sed '/^aaa/a\bbbbbbb' test.txt 44 45 指定行追加一行 第二行下面追加一行 46 47 sed '2a\xxxxxxxxxxxxxx' test.txt 48 49 在匹配行的下一行操作 s替换 50 51 sed '/aaa/{n;s/is/IS/;}' test.txt 只打印复合条件的第一个 52 53 sed '/aaa/{n;s/is/IS/g;}' test.txt g全局 可以修改全部的符合的条件 54 55 打印奇数行 sed -n 'p;n' test.txt sed -n '1~2p' test.txt 56 57 打印偶数行 sed -n 'n;p' test.txt sed -n '2~2p' test.txt
AWK模拟练习
1 AWK 2 3 linux取IP地址 4 5 ifconfig | grep -w inet | sed -n '1p' | awk '{print $2}' 6 7 eg: 8 9 awk -F ':' '{print $1}' /etc/passwd 10 11 awk -F ':' '{print $NF}' /etc/passwd 取最后一个字段 12 13 awk -F ':' '{print $(NF-1}' /etc/passwd 14 15 NR:行 NF:最后 16 17 awk ' NR==2 {print}' /etc/passwd 支取第二行 18 19 第一行第二个字段 20 21 awk -F ':' 'NR==1 {print $1}' /etc/passwd 22 23 第三行以后的 24 25 awk 'NR>3 {print}' /etc/passwd 26 27 小写转大写 28 29 awk -F ':' '{print toupper($1)}' /etc/passwd.bak 30 31 字符串改为小写 32 33 awk '{print tolower($0)}' /tmp/aa.txt 34 35 36 37 awk '/root/ {print}' /etc/passwd 38 39 awk -F ':' '$1=="root" {print}' /etc/passwd 40 41 awk -F ':' '$1=="root" {print $2}' /etc/passwd #$2打印第二个字段 $0所有字段 42 43 awk -F ':' '{if ($1=="root") print $1;else print $2}' /etc/passwd -F字段 ':' 以:为一个字段 44 45 100以内的数相加 46 47 seq 100|awk '{sum+=$0} END {print sum}' 48 49 50 51 vim sx BEGIN 没有开始处理文件时保存的 52 53 awk 'BEGIN {FS=":";print "统计销售金额";total=0} {print}' sx 54 55 awk 'BEGIN {FS=":";print "统计销售金额";total=0} {print $3;total+=$3} END {print "销售金额总计: %.2f\n",total}' sx
AWK计算方法
加减乘除算法
%c | ASCLL字符 |
%d | 整型 |
%f | 浮点型 |
%s | 字符串 |
%e | 科学计数法 |
%g | awk决定那种浮点数转换e或f |