shell基础五:输入和输出/正则表达式

1.在e c h o命令输出之后附加换行,可以使用\ n选项:

echo -e "hello\n\n\n"

2.在e c h o语句中使用跳格符,记住别忘了加反斜杠\:

  1.  echo -e "here is a tab\there are two tabs\t\tok"


结果:

  1. here is a tab   here are two tabs      
3. 把一个字符串输出到文件中,使用重定向符号>。
在下面的例子中一个字符串被重定向到一个名为m y f i l e的文件中:

echo "hello" > myfile
4.或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:
echo "hello">>myfile
输出变
  1.  echo "$LOGNAME carried them out at `date`">>myfile
    1. 结果:
      1. m y f i l e文件中的内容:
        The log files have all been done
        sam carried them out at 六 11月 13 12:54:32 CST 2004
        5.引号是一个特殊字符,所以必须要使用反斜杠\来使s h e l l忽略它的特殊含义。
        假设你希望使用e c h o命令输出这样的字符串:“/ d e v / r m t 0”,那么我们只要在引号前面加上反斜杠\即可:
        1. $ echo "\"/dev/rmt0"\"
        2. "/dev/rmt0"
        3. $
        ---------------------------------------------------------------------------------------------------------------------------------
            1. 1()与{}区别

                  1. (cmd1;cmd2;...;cmdN)#在一个子shell里执行一组命令 
                  2. {cmd1;cmd2;...;cmdN}# 在当前shell里执行一组命令 
                  3. 这是一个基本概念 


                  4. [jason@firewall jason]$ A=1;echo $A;{ A=2; };echo $A 


                  5. [jason@firewall jason]$ A=1;echo $A;( A=2; );echo $A 



                  6. { A=2; }改变了当前shell变量的值 
                  7. ( A=2; )未改变当前shell变量的值 
        2.执行顺序


        01.$ sort quarter_end.txt > quarter.sorted && lp quarter.sorted
        复制代码
        使用命令组合的方法,如果s o r t命令执行成功了,先将输出文件拷贝到一个日志区,然后再打印。


        01.$ sort quarter_end.txt > quarter.sorted && (cp quarter.sorted  /logs/quarter.sorted; lp quarter.sorted)
      2. 3.正则表达式
            1. 语法:http://bbs.chinaunix.net/thread-149723-1-1.html
                  1. 易错点
                  1. [abc]: 表示單一字符, 可為 a 或 b 或 c . (與 wildcard 之 [abc] 原理相同)
                                                         [^abc]: 表示單一字符, 不為 a 或 b 或 c 即可. (與 wildcard 之 [!abc] 原理相同)
                                                    *            匹配0或多个字符


            2. 4. 易错点总结
            3.  . . . .X C. . . .:共10个字符,前四个之后为XC
                               
                               
                               
                               
            1. 列出所有用户都有执行权限的文件或目录
            2.                       
                                    
                                    
                                    
              1. $ . ' " * [] ^ | () \ + ?ls -l | grep ...x..x..x
              2. 输出:
              3. 使用 ls -l 列出文件,并匹配目录
              4. ls -l | grep ^d
              5. 列出文件a.conf中所有以common结尾的行
              6. 方法一:grep common$ a.conf
              7. 方法二:cat a.conf | grep common$
              8. 匹配所有空行:
              9. ^$
              10. 匹配只有一个字符的行:
              11. ^.$
              12. 01使用\屏蔽一个字符的特色含义
              13. 一般认为以下字符有特殊含义:
              14. $ . ' " * [] ^ | () \ + ?
                
              15. 例如: 
              16. 匹配包含^的行  \^
              17. 匹配包含 *.pa的行   \*\.pa
              18. 02 \{\}匹配出现的次数
              19. pattern\{n\} 匹配模式出现n次。
                pattern\{n,\} 匹配模式出现最少n次。
                pattern\{n,m} 匹配模式出现n到m次之间,n , m为0 - 2 5 5中任意整数。
                
              20. 例子:
              21. A出现2次,B结尾   A\{2\}B
              22. A至少出现2次,B结尾  A\{2,\}B
              23. A出现2-4次,B结尾   A\{2,4\}B
              24. 例子:
              25. 从以下抽取代码
              26. 1234XC9088
                4523XX9001
                0011XA9912
                9931Xc3445
                
              27. [0-9]\{4\}XX[0-9]\{4\}  匹配第2行
              28. 例子:
              29. 以^q开始的行  \^q
              30. 匹配单词zpp  '"zpp"'
              31. 日期格式d d - m m - y y y y  [0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}
              32. 匹配IP    [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ }
              33. 03 推荐《Linux与Unix shell编程指南》
              34. http://wenku.baidu.com/link?url=R3rMRGvbXXMorWmPEv7uUqifUGMzkgWDpBhySK2SXZYHIvae1KsVXj_48FPF9iUlvBAzTITJROPy6Oy-L6fsNBzzKq9hTmiPvBoey0V8P3a
                
                
                

你可能感兴趣的:(shell基础五:输入和输出/正则表达式)