zoukankan      html  css  js  c++  java
  • shell_08--linux三剑客

    1、sed命令

      Linux文本处理三剑客 之 sed
       sed stream EDite
          作为行编辑器,对文本进行编辑(以行为单位进行编辑)
          注意:sed编辑文件,不改变原文件
       sed工作原理:
            指定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行匹配(正则表达式),对匹配后的内容进行修改(替换,删除,打印,保存等等)

      用法:
         sell [OPTIONJ.. {script- only-if-no-other-script [input. fl]..
         sed[参数]“sed自己独立的用法格式的语句”[文本文件]
      常见选项:
         -r 指定使用扩展的正则表达式
            1、所有的都不要 2、
         -n 拒绝默认显示
         -e script
         -f 指定脚本文件
         -l 指定文本的换行长度
         -i 直接修改文件内容(不建议使用)

      地址定界方式:

    1、直接匹配数值

    sed -n '5p'filename
    

    2、d-步长

    sed -n '1,3p'filename
    

    3、$指定行尾

    sed -n '10,$p'filename
    

    4、匹配正则表达式

    sed -n '/k{5,}/,$p' filename
    

    5、0,addr

    addr可以为数字/$/正则表达式
    sed -n '0,/k{5,}/p' filename
    

    6、addr,+N

    匹配addr行到addr后N行
    sed -n '/fd/,+5p' filename
    

    7、addr,~N

    sed -n '1,~10p' filename
    

    常见命令:

       p print 打印(默认在屏幕显示文件文本内容)建议和-n一起使用;
       c 替换行
          sed "/aaa/c A" filename      #将aaa替换w为A
       d 删除
          sed "/aaaa/d" filename
          sed "1,3d" filename
       n N 读取/添加 模式匹配到的行的下一行内容,再对其操作
       w 保存文件内容到一个新的文件
          sed "/pattern/w newfilename "oldfilename
          sed "/k/w b" a
       s 文本内容替换,默认替换模式空间匹配到的第一项
          语法格式:s/pattern/字符串/
              中间的/可以替换为任意一个特殊字符 例如: s### s@@@ s%%%
          g 全部匹配
          1 2 和正则表达式分组相同,实现反响引用;
             指定某一个匹配项替换或修改
          & 调用前面(PATTERN)的匹配的内容
          w
          p

      拓展:
         dirname --取出文件路径的路径部分
         basename --取文件路径的文件名部分
      sed高级应用
         模式空间 -- hode space "占有空间"
            h 把模式空间汇总的内容覆盖至保持空间中;
            H 把模式空间中的内容追加到保持空间中;
            g 从保持空间中取出内容至模式空间,覆盖至模式空间;
            G 从保持空间取出数据(内容)追加至模式空间;
            x 把模式空间和保持空间中的内容与保持空间中的内容进行互换操作
            n 表示读取匹配到的行的下一行读取匹配到的行的下-行至模式空间
            N 追加匹配到的行的下-行至模式空间
            d 删除模式空间中的行
            D 删除多行模式空间中的所有行

    知识回顾

    for
    	for  变星 in 列表; do
    		循环体
    	done
    	for((初始语句;判断语句;值变化语句)); do
    		循环体
    	done
    

    case语句

    case
    	分支
    	case 变量 in
    	PAT1)
    		执行语句
    		;;
    	PAT2)
    		执行语句
    		;;
    	*)
    		默认执行语句
    		;;
    	esac
    

    while语句

    循环
    	格式:
    	定义初始值
    	while条件判断; do
    		循环体
    		值变化语句
    	done
    	其他两种特殊的语句格式:
    	for i in $(cat tc/passwd &> /dev/null) 错误写法
    	
    	while read 变量;do
    		循环体
    	done<</path/filename
    	
    	死循环写法
    	while true;do
    		循环体
    	done
    

    打断循环

      break 跳出循环
       continue 跳出本次循环
       sleep 延长一定时间,继续向下执行命令

    until
       循环
       与while用法相同
       区别:只有判断条件为False的时候,才会进入循环;

    if语句

    if 条件判断;then
    		执行语句1
    	fi
    	---------------
    	if 条件判断;then
    		执行语句1
    	else
    		执行语句2
    	fi
    	---------------
    	if条件判断; then
    		执行语句1
    	elif条件判断; then
    		执行语句2
    	elif条件判断; then
    		执行语句3
    	else
    		执行语句4
    	fi
    	
    

      

  • 相关阅读:
    Java Servlet 中文API说明
    HIbernate主键详解
    ERP项目管理的五个要点
    java反射机制学习总结
    Spring 2.0的新特性和应用实践
    【Struts1.2总结】strutsconfig.xml配置
    数据库设计
    关于URL后面传中文方法总结
    JAVA开发者最常去的20个英文网站
    Socket 死连接详解
  • 原文地址:https://www.cnblogs.com/lzqitdl/p/11365560.html
Copyright © 2011-2022 走看看