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:不支持正則表達式
速度快,在沒有使用正則表達式的適合使用比較合適


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