shell正則表達式和cut命令


正則表達式

符號 描述
$ 匹配輸入字符串的結尾位置
() 標記一個子表達式的開始和結束位置
* 匹配前面的子表達式零次或多次
+ 匹配前面的子表達式一次或多次
. 匹配除換行符(\n)之外的任何單字符
[] 匹配一個中括號表達式的開始
? 匹配前面的子表達式零次或一次
\ 將下一個字符標記為特殊字符
^ 匹配輸入字符串的開始位置
{} 標記限定符表達式的開始
| 指明兩項之間的一個選擇
定位符號 描述
^ 匹配輸入字符串開始的位置
$ 匹配輸入字符串結尾的位置
非打印字符 描述
\n 匹配一個換行符
\r 匹配一個回車符
\t 匹配一個制表符

統計/etc/ssh/sshd_config文件中去除空行和#號開頭的行

[root@VM_0_7_centos ~]# grep -v '^$\|^#' /etc/ssh/sshd_config 

擴展正則表達式

[root@localhost ~]# grep -E -v '^$|^#' /etc/ssh/sshd_config 

擴展正則表達式

[root@localhost ~]# egrep -v '^$|^#' /etc/ssh/sshd_config 

cut

cut命令用來顯示行中的指定部分,刪除文件中指定字段

該命令有兩項功能
其一是用來顯示文件的內容,依次讀取由參數file所指明的文件,將它們的內容輸出到標准輸出上

其二是連接兩個或多個文件,
如cut f1 f2 > f3
將把文件f1和f2的內容合並起來,然后通過輸出重定向'>'把他們放入文件f3中

語法

cut(選項) (參數)

選項

  • -b 僅顯示行中指定范圍的字節數
  • -c 僅顯示行中指定范圍的字符
  • -d 指定字段的分隔符,默認的字段分割符是'tab'
  • -f 顯示指定字段的內容

取出passwd中第一列的用戶名

[root@VM_0_7_centos ~]# cut -f1 -d ":" /etc/passwd
root
bin
...

以:為分割符,取出第一列

cut命令可以將列中的某幾個字節,字符,字段取出

  • -b 表示字節

  • -c 表示字符

  • -f 表示定義字段

  • n- 從第n個(字節,字符,字段)到結尾

  • n-m 從第n個(字節,字符,字段)到第m個(字節,字符,字段)

  • -m 從第一個(字節,字符,字段)到第m個

每一列的前三個字母

[root@VM_0_7_centos ~]# cut -c1-3 /etc/passwd
roo
bin

每一列的前兩個字母

[root@VM_0_7_centos ~]# cut -c-2 /etc/passwd
ro
bi

從第五個字母到最后

[root@VM_0_7_centos ~]# cut -c5- /etc/passwd
:x:0:0:root:/root:/bin/bash
x:1:1:bin:/bin:/sbin/nologin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM