Linux 文件查找与编辑命令集合( 二 )

  • --help 在线帮助 。
  • --color=auto 将搜索到的内容标上颜色 。
  • pattern 正则表达式主要参数:
    • :忽略正则表达式中特殊字符的原有含义 。
    • ^:匹配正则表达式的开始行 。
    • $ :匹配正则表达式的结束行 。
    • <:从匹配正则表达 式的行开始 。
    • >:到匹配正则表达式的行结束 。
    • [ ]:单个字符,如[A]即A符合要求。
    • [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求。
    • .:所有的单个字符 。
    • * :有字符,长度可以为0 。
    示例
    # 从.txt文件中查找包含'a'字符串的文本文件grep 'a' *.txt --color=auto# 搜索包含连续4个字符的文件grep '[a-z]{4}' *.txt1234三 、 sed 从文件中查找sed 是利用脚本来处理文本文件,可以自动编辑一个或多个文件,简化重复操作 。
    命令格式sed [-nefr] [操作]
    参数说明
    • -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件 。
    • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件 。
    • -h或--help 显示帮助 。
    • -n或--quiet或--silent 仅显示script处理后的结果 。
    • -V或--version 显示版本信息 。
    动作说明
    • a :新增,a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
    • c :取代,c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
    • d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
    • i :插入,i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    • p :打印,亦即将某个选择的数据印出 。通常 p 会与参数 sed -n 一起运行~
    • s:取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
    sed -n '2p' sed.txt 打印第2行sed -n '1,3p' sed.txt 打印1~3行sed -n '1,3p' sed.txt >sed.tmp1~3行输出到sed.tmp文件里sed -n '1,$p' sed.txt显示全文sed -n '1p' sed.txt打印首行sed -n '$p' sed.txt打印最后一行sed '2p' sed.txt输出全部文本,然后输出第2行sed -n '/should/'p sed.txt 查找should的行sed -n '/should/=' sed.txt输出匹配的行号sed -n '/./'p sed.txt 特殊字符查询,需要进行转义sed '1,3d' sed.txt删除1~3行sed '/should/d' sed.txt 删除包含should的行sed 's/PS/ps/' sed.txt替换每行第一个单词sed 's/PS/ps/g' sed.txt全文替换sed '1,3 s/should/SHOULD/g' sed.txt 指定行替换sed '1 s/should/SHOULD/g' sed.txt 指定行范围替换控制字符输入方式:^M1.Ctrl+v2.M3.释放Ctrl123456789101112131415161718192021四、awk与sed 相比,awk 倾向于一行中分成数个字段来处理,适合处理小型的文本数据 。
    awk处理过程: 依次对每一行进行处理,然后输出
    awk命令样式
    • awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
    • [-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
    • ' ' 引用代码块
    • BEGIN 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
    • // 匹配代码块,可以是字符串或正则表达式
    • {} 命令代码块,包含一条或多条命令
    • ; 多条命令使用分号分隔
    • END 结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息 。
    •  
    特殊要点:
    • $0 表示整个当前行
    • $1 每行第一个字段
    • NF 字段数量变量
    • NR 每行的记录号,多文件记录递增
    • FNR 与NR类似,不过多文件记录不递增,每个文件都从1开始
    • t 制表符
    • n 换行符
    • FS BEGIN时定义分隔符
    • RS 输入的记录分隔符,默认为换行符(即文本是按一行一行输入)
    • ~ 匹配,与==相比不是精确比较
    • !~ 不匹配,不精确比较
    • == 等于,必须全部相等,精确比较
    • != 不等于,精确比较
    • &&逻辑与
    • || 逻辑或
    • + 匹配时表示1个或1个以上
    • /[0-9][0-9]+/ 两个或两个以上数字
    • /[0-9][0-9]*/ 一个或一个以上数字
    • FILENAME 文件名
    • OFS 输出字段分隔符,默认也是空格,可以改为制表符等
    • ORS 输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
    • -F'[:#/]' 定义三个分隔符
    五、文件比较diffdiff [选项] <参数>常用命令选项:


    推荐阅读