Shell编程(视屏总结)

一、基础正则表达式

       1、正则表达式

             正则表达式:用来在文件中匹配符合条件的字符串,正则是包含匹配,grep、awk、sed等命令支持正则表达式,

语法:grep ["选项"] 文件名       如grep “*” student.txt           提取行

             选项含义:“[]”  匹配中括号内任意字符串

                               “*”  匹配*前字符零次或任意多次

                               ”[^]”匹配初中括号内字符外的任意字符

                               ”{n}”  表示前面的字符连续出现n次                                             如a{3} 表示a连续出现3次

                                ”{n,}”  表示前面的字符最少出现n次                                             如a{3,} 表示a最少出现3次

                                "{n,m}" 表示前面的字符最少出现n次,最多出现m次

                                “.”  匹配除换行符外的任意一个字符                             

                                 “Λ” 匹配首行                                                                              如“Λhello” 匹配以hello开头的行

                                 “¢” 匹配结尾                                                                               如“¢hello” 匹配以hello结尾的行

       2、  通配符:用来匹配符合条件的文件名,是完全匹配,Is、find、cp等命令不支持正则表达式,只能使用shell自己的通配符进行

             匹配。 * 、? 、[]

二、字符截取命令 

    1、cut命令——提取列,不能正确提取空格符的列,只能是制表符,即tab键

        语法: cut [选项] 文件名                 选项:-f  :指定提取的列    如 cut -f 2 student.txt 表示提取文件名为student.txt的第2列  或cut -f 2,3 student.txt(提取多列用逗号分开)

                                                                         -d  :按照指定分隔符分隔列   如cut -d "所指定的分隔符" 文件名      cut -d ":" student.txt     

                                                                                cut -d ":" -f 2 student.txt

                    cut 提取列,只能识别:  ,   。等分隔符,制表符,但是不能识别空格符

    2、printf命令

        语法:printf ‘输出类型输出格式’ 输出内容

                  printf不会自动加入换行符,而print会自动加入换行符

    3、awk命令

       语法:awk '条件1 {动作1} 条件2 {动作2}.....' 文件名

                  一般是使用关系表达式作为条件,默认识别的分隔符是:和,

                  awk ‘BEGIN {动作a} 条件1 {动作1} 条件2 {动作2}’       表示在所有数据度处理之前先执行动作a,然后在执行后面的动作1、2

                  awk ‘END {动作a} 条件1 {动作1} 条件2 {动作2}’          表示在所有数据处理完之后执行动作a 

    4、sed命令(流编辑器)

        语法:sed [选项] ‘[动作]’ 文件名

        选项:-n  将经过sed命令处理的数据输入到屏幕上

                   -e 允许对输入数据进行多条sed命令处理

                   -i  用sed的修改结果直接修改读取数据的文件,而不是将修改结果输入到屏幕上

        动作: a :追加,在当前行后添加一行或多行

                   c :行替换,用c后面的数据替换原数据行

                    i : 插入 ,在当前行之前插入一行或多行

                   d :删除指定的行

                   p :打印指定的行

                   s :字符串替换, 用一个字符串替换另一个字符串         “行范围s/旧字符串/新字符串/g”

三、字符处理命令

四、条件判断

五、流程控制

原文地址:https://www.cnblogs.com/fangfang66/p/7807867.html