zoukankan      html  css  js  c++  java
  • shell基础003-三剑客

    grep
    -c: 只输出匹配行的计数
    -i 不区分大 小写
    -h 查询多文件时不显示匹配文件名前缀
    -l 只列出文件名,不显示内容
    -n 同时显示行号
    -s 不显示不存在的或者无法读取文件的错误信息
    -v 只显示不匹配的文本行
    -w 匹配整个单词
    -x 匹配整个文本行
    -r 递归搜索文件及各层文件夹
    -q 不显示结果,只以状态码的形式表示结果是否成功,0代表找到
    -b 打印匹配的文本行到文件头的偏移量
    -E 支持扩展正则表达式
    -P 支持Perl正则表达式
    -F 不支持正则表达式,只以字面的意思进行匹配

    教常用的参数-i -l -r -n -c

    egrep 使用扩展正则表达式作为默认的正则表达式引擎?

    sed 流编辑
    从文件或者标准输入中一次读取一行数据,参数,
    -n: 取消默认输出,
    -e: 允许执行多个脚本,
    -f: 从脚本文件中读取命令,
    -i: 直接修改原始文件,
    -l: 指定行的长度,
    -r: 在脚本中使用扩展正则表达式, /regexp/
    -s: 默认情况下,将把命令行指定的多个文件名作为一个长的连续的输入流,Gnu.Sed.则,允许把他们当做单独的文件,这样的话,正则表达式不进行跨文件匹配。

    sed 编辑命令基本语法
    [address1 [address2] ] command [argument]

    选择文本:
    sed '1,3p' student.txt #输出1-3行,不使用-n;
    sed -n '/^2020/ p' student.txt #输出开头为2020的行
    sed -n '1 p' stu.txt ##输出第一行
    sed -n '$ p' stu.txt ###输出最后一行

    sed -n '1~2 p' stu.txt ####输出奇数行,1,1+2,1+2+2.....1,2 p是1-2行。
    sed -n '0~2 p' stu.txt ####输出偶数行
    sed -n '/abc/ ,5 p' stu.txt ####输出从第一个含有abc(匹配处)开始,到第5行结束。

    替换文本:
    [address1 [address2]] s/pattern/replacemen/[flag]
    flag:
    g :global,全局替换
    N :十进制数字,替换第N个
    p :替换第一个,并将缓冲区输出到标准输出
    w :替换第一个,并将受影响的行输出到磁盘文件中
    空 :则替换第一个
    sed '1,3 s/e/E/g'stu.txt ###替换第1-3行中所有的
    sed '1,/^2020/ s/e/E/g' stu.txt ###替换第一行开始,到第一个匹配项所在行为止,之间所有内容
    sed 's/<[^>]*>//g' html.txt ###将文件中的html标记替换为空
    sed 's/tring/long &/' demo.txt ###&或 ;n=1-9;表示引用匹配模式,把string替换为 long string

    删除文本:
    [ad1 [ad2]] d
    sed -e '1 d' stu.txt ####删除第一行
    sed -e '$ d' stu.txt ####删除最后一行
    sed -e '1,4 d' stu.txt ####删除1-4行
    sed -e '1~2 d' stu.txt ####删除奇数行
    sed -e '0~2 d' stu.txt ####删除偶数行
    sed -e '1,/^2020/ d' student.txt ####删除1到匹配的行
    sed -e '4,$ d' stu.txt ####删除第4到最后一行

    追加文本:行后追加
    [address] a string
    sed '2 a 2020 tom' stu.txt ####在第二行后面追加"2020 Tom"

    插入文本:行前插入
    [address] i string
    sed '2 i 2020 tom' stu.txt ####在第二行前面插入"2020 Tom"

    #################################################待补充##########################################
    awk 处理字符串:

  • 相关阅读:
    SendInput模拟键盘输入的问题 <转>
    tinyMce3.21 使用随笔
    ORM的一些思考
    VS2008 , 1330 , 数字签名错误.
    .Net Reflector 工具 过期后使用小工具。
    就当是一个新的设计模式!
    OpenSUSE 11 下 Mono 2 开发笔记。
    转:)CNBlogs引用第三方组(控)件明细^_^
    DBLinq ,没实现 Log !
    DotNet 的一些知识点
  • 原文地址:https://www.cnblogs.com/bernard-shen/p/13170687.html
Copyright © 2011-2022 走看看