Linux 三剑客之 grep sed篇

    技术2025-02-17  21

    grep格式

    grep 匹配条件 处理文件

    grep -E = egrep grep root  passwd ##过滤root关键字 grep ^root  passwd ##以root开头 grep root$ passwd ##以root结尾 grep -i  root  passwd ##忽略大小写 grep -E "\<root" passwd ##root字符之前不能有字符 grep -E "root\>" passwd ##root字符之后不能有字符 greo -数字 ##显示过滤行以及上面几行和下面几行 grep -n ##显示匹配的行所在行号 grep -A ##显示过滤行以及下面几行 grep -B ##显示过滤行以及上面几行 grep -v ##反向过滤

     

    grep字符数量匹配规则 ^westos ##以westos开头 westos$ ##以westos结尾 w....s ##w开头s结尾中间4个任意字符 .....s ##s结尾前面5个任意字符 * ##字符出现任意 ? ##0到1次 + ##1到任意次 {n} ##n次 {m,n} ##m到n次 {0,n} ##0-n次 {,n} ##0-n次 {m,} ##最少m次 (lee){2} ##lee字符串出现2次

     

    sed

    对字符的处理 p ##显示 sed -n 5p westos ##显示第五行 sed -n 3,5p westos ##显示3到5行 sed -ne "3p,5p" westos ##显示3和5行 sed -ne 1,5p westos ##1-5行 sed -ne '5,$p' westos ##5到最后一行 sed -n '/^#/p' westos ##显示以#开头的行 d ##删除 sed 5d westos ##删除第五行 sed '/^#/d' westos ##把#开头的行删除 sed '/^UUID/!d' westos ##除了UUID以外的行都删除 sed -e '5,$d' westos

     

    a ##添加 sed -e '$a hello world' westos sed -e '$a hello\nworld' westos sed -e '/^#/a hello world' westos i ##插入 sed '5ihello westos' westos w ##把符合的行写到指定文件中 sed '/^UUID/w westosfile' westos ##把westos中UUID开头的行写入westosfile中 r ##整合文件 sed '5r haha' westos

     

    sed字符替换 sed 's/:/##/g' westos sed 's/:/##/' westos sed 's/:/##/g' westos sed '1,5s/:/##/g' westos sed '1s/:/##/g' westos sed '1s/:/##/g;5s/:/##/g' westos sed '/lp/,/shutdown/s/:/##/g' westos sed 's/\//##/g' westos sed 's@/@##@g' westos sed 's@/@##@g' -i westos

    awk

    awk -F 分隔符 BEGIN{}{}END{} FILENAME NR ##行数 NF ##列数 FILENAME ##文件名称本身 westos ##westos变量值 "westos" ##westos字符串 /bash$/ ##条件 /条件1|条件2/ ##条件1或者条件2 /条件1/||/条件2/ ##条件1或者条件2 /条件1/&&/条件2/ ##条件1并且条件2 $0 ##所有的列 $1 ##第一列 $2 ##第二列 ##/etc/passwd文件的第六列没有home关键字并且以bash结尾的行 awk -F : '$6!~/home/&&/bash$/{print}' /etc/passwd

     

     

    Processed: 0.011, SQL: 9