Linux中的grep、sed、awk使用

作者: 蜗先生 | 来源:发表于2017-09-16 00:52 被阅读24次
    grep文本查找工具:全局查找并打印匹配到的行

    grep OPTION 'PATTERN' FILENAME

    选项
    -n 显示行号
    -i  忽略大小写字母
    -v 反向显示不匹配的文本内容
    -E使用扩展正则表达式
    --color 匹配到的字符串加颜色
    
    sed流编辑器:对文本的行编辑

    sed OPTION '[[n1],n2]COMMAND' FILENAME
    n1,n2可以是指定的行或者是匹配到的行,匹配字符串/PATTERN/

    选项
    -n 安静模式,表示处理过的行,默认显示全部文本
    -e 执行多条命令
    -r 使用扩展正则表达式,默认是基本正则表达式
    -i 修改原文件
    
    命令
    a 当前行的下方增加一行(a后加" \ "添加内容,\n表示换行)
    i 当前行的上方增加一行(同上)
    c 替换指定的行(同上)
    d 删除指定的行
    p 打印,通常和-n一起使用,表示打印处理过的行
    s 模式替换,s/PATTERN/STRING/替换每行基本正则表达式匹配到的第一个字符串,s/PATTERN/STRING/g表示全局替换,每行匹配到的字符串都替换。
    
    awk文本处理工具:对文本的行编辑和处理,功能强大,能对文本行和列进行处理

    awk FIELD '/PATTERN/+COMMAMD' FILENAME

    分割域
    -F 'Char' 根据指定的分隔符对文本行进行分割成不同的域,默认分隔符为空格
    
    命令
    BEGIN{}文本读取前的处理命令
    {}文本读取时的处理命令
    END{}文本读取结束的处理命令
    括号中可以是print、println、for、if、定义变量等命令
    
    awk的内置变量有NR(行号)、NF(分割域的个数)、FILENAME(当前处理的文件名)等
    awk也可以自定义变量,定义数组的索引可以是字符串,也可以是数字,更像HashMap的key

    相关文章

      网友评论

        本文标题:Linux中的grep、sed、awk使用

        本文链接:https://www.haomeiwen.com/subject/jmcjsxtx.html