美文网首页
linux三剑客与管道

linux三剑客与管道

作者: 小手是只猫 | 来源:发表于2020-11-20 13:17 被阅读0次

    一:什么是管道?

    linux提供管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右面命令的输入

    什么是正则?

    正则表达式就是记录文本规则的代码

    举例:

    1.找出所有hi单词 \bhi\b

    2.hi单词后面有lucy的单词 \bhi\b.*\blucy\b

    3.以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字0\d{2}-\d{8}

    常用的元字符

    代码 说明
    . 匹配除换行符以外的任意字符
    \w 匹配字母或数字或下划线或汉字
    \s 匹配人意的空白符
    \d 匹配数字
    \b 匹配单词的开始或结束
    ^ 匹配字符串的开始
    $ 匹配字符串的结束

    常用的限定符

    代码/语法 说明
    * 重复0次或更多次
    + 重复一次或更多次
    重复0次或1次
    {n} 重复N次
    {n,} 重复n次或更多次
    {n,m} 重复n到m次

    二:grep
    定义:根据用户指定的模式(pattern)对目标文本进行过滤,显示被模式匹配到的行
    grep[options]PATTERN[file..]

    -v 显示不被pattern匹配到的行
    -i 忽略字符大小写
    -n 显示匹配的行号
    -c 统计匹配的行数
    -o 仅显示匹配到的字符串
    -E 使用ERE相当于egrep

    三:sed
    sed是流编辑器,一次处理一行内容
    命令形式:sed[-hn..][-e<script>][-f<script file>][file]
    -h显示帮助
    -n 仅显示script处理后的结果
    -i 修改源文件
    -e<script>以选项中指定的script来处理输入的文本文件
    -f<script 文件>以选项中指定的script文件来处理输入的文本文件
    常用动作:

    a 新增 sed -e '4 a newline'
    c 取代 sed -e '2,5c No2-5 number'
    d 删除 sed -e'2,5d'
    i 插入 sed -e '2i newline'
    p 打印 sed -n '/root/p'
    s 取代 sed -e 's/old/new/g' g是全局替换

    查看帮助文档:man sed j下一行 k上一行 /-e:查看有-e的行,n查看下一个-e行
    四:awk
    定义:把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行后续处理
    命令形式:awk 'pattern + action'[file]
    常用参数

    FILENAME awk 浏览的文件名
    BEGIN 处理文本之前要执行的操作
    END 处理文本之后要做的操作
    FS 设置输入域分隔符,等价于命令行-F选项
    NF 浏览记录的域的个数(列数)
    NR 已读的记录数(行数)
    OFS 输出域分隔符
    ORS 输出记录分隔符
    RS 控制记录分隔符
    $0 整条记录
    $1 表示当前行的第一个域...

    实战:
    1.使用begin加入标题
    awk 'BEGIN{print"begin","begin"}{print 1,2}' /etc/passwd
    2.自定义分隔符
    echo "123456789" | awk 'BEGIN{RS="*"}{print $0}'

    相关文章

      网友评论

          本文标题:linux三剑客与管道

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