Linux I/O重定向以及正则表达式


计算机组成部分
    运算器/控制器:CPU
    存储器:RAM
    输入设备/输出设备
 
    程序:指令和数据

    控制器:指令
    运算器:
    存储器:
 
    地址总线:内存寻址
    数据总线:传输数据
    控制总线:控制指令

     寄存器:CPU暂时存储器
set -C:禁止对已经存在的文件使用覆盖重定向
        强制覆盖输出 >
    +C:关闭上述功能

2>:错误输出,只能重定向错误输出
2>>:追加的方式实现重定向输出
& >:重定向标准输出或错误输出至同一文件



<:输入重定向
<<:在此处生成文档

tr 替换或删除,不接受文件作为参数
cat 链接并输出


管道:前一个命令的输出,作为后一个命令的输入

命令1 | 命令2| 命令3|……
such: echo "leo" | tr 'a-z' 'A-Z'


tee命令
    保存在文件中一份,输出至屏幕上一份
    such:echo "leo" | tee /tmp/hello.out
    
cut:
    cut -d: -f7 /etc/passwd | sort -u
file:查看文件类型
     file *
     file `路径`

文本查找的需要gerp,egrep,fgrep
gerp:根据模式,搜索文本,并将符合模式的文本行显示出来
Pattern:文本字符和正则表达式的元字符组合而成匹配条件
grep [options] PATTERN [FILE...]
     -i 忽略大小写
     --color 加以颜色  可以添加别名
         laias grep='grep --color'
     -v 反向显示,没有被模式疲惫到的行
     -o 只显示被模式匹配到的字符串
     -E 使用扩展正则表达式
     -A(后面加数字):找到行显示后面的n行
           grep -A 2 '^core id' /pro/cupinfo
     -B(后面加数字):找到行显示前面的n行
           grep -B 2 '^core id' /pro/cupinfo
     -C(后面加数字):找到行显示前后面的n行
           grep -A C '^core id' /pro/cupinfo
      






   *:任意长度的任意字符
   ?:任意单个字符
   []:

   [^]:


正则表达式:
元字符:
    .:匹配任意单个字符
    []:匹配指定范围外的任意单个字符
   [^]:匹配指定范围外的任意单个字符
   字符集合:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:],
  匹配次数:
    *:匹配其前面的字符任意次
    .*:任意长度的任意字符
       a.*b   a开头b结尾,中间随意
    \?:配置其前面的字符1次或者0次
    \{m,n\}:匹配其前的字符,至少m次,至多n次
       such:\{1,\}
             :\{0,3\}
              grep 'a\{2,3\}b' aa.txt
              grep 'a.\{2,3\}b' aa.txt
位置锚定
^: 锚定行首,此字符后面的任意内容必须出现在行首
$ : 锚定行尾,此字符前面的任意字符必须出现在行尾
^$:空白行

\<:其后面的任意字符必须作为单词首部出现
\>:其前面的任意字符必须作为单词尾部出现
\<root\>
   such:grep '\<root' aa.txt
        grep 'root\>' aa.txt
        grep '\<root\>' aa.txt  root必须是一个单词

分组:
   \(\)
       \(ab\)* 匹配ab
        向后引用
        \1:引用第一个左括号以及与之对应的右括号的所有内同
        \2
        \3
        \4

        grep '\([0-9]).*\1$' a.txt


正则表达式:
    basic regexp :基本
     extended regexp:扩展

基本正则表达式:
   .:
   []
   [^]
   \?:  0次或者1次
   \{m,n\}:至少m次,至少n次
   .*:任意多少次

扩展正则表达式:
    grep=grep -E
   字符匹配:

.
[]
[^]

次数匹配
*:
?:
+:匹配其前面的字符至少一次
{m,n}:不需要使用反斜线(扩展正则表达式特有)

锚定字符和基本正则表达式一样

^

$
\<
\>

分组:
\1,\2,\3,……

|: or 的意思
  a|b  或者
  such: grep --color -E ' C|cat' A.txt
        grep --color -E ' (C|c)at' A.txt

such:
显示所有以数字结尾且文件名中不包含空白的文件
ls * [^[:space:]]*[0-9] ????????
找出/boot/grub/grub.conf文件中1-255之间的数字:
\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5]|)\>

ifconfig | egrep
'\< \>'{重复次数}
     such :[0-9]{2}  重复一次


fgrep:不支持正则表达式
速度快,在没有使用正则表达式的适合使用比较合适


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章