• 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/abbbbbb'  test.txt
    44 
    45 指定行追加一行 第二行下面追加一行
    46 
    47 sed '2axxxxxxxxxxxxxx' 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
    ",total}'  sx

     AWK计算方法            

    加减乘除算法

    awk格式   printf"%格式化"
    %c ASCLL字符
    %d 整型
    %f 浮点型
    %s 字符串
    %e 科学计数法
    %g awk决定那种浮点数转换e或f
  • 相关阅读:
    废水回收
    XJOI网上同步训练DAY6 T2
    XJOI网上同步训练DAY6 T1
    Codeforces 351B Jeff and Furik
    对拍 For Linux
    Codeforces 432D Prefixes and Suffixes
    Codeforces 479E Riding in a Lift
    Codeforces 455B A Lot of Games
    Codeforces 148D Bag of mice
    Codeforces 219D Choosing Capital for Treeland
  • 原文地址:https://www.cnblogs.com/security-guard/p/11971248.html
Copyright © 2020-2023  润新知