日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下

發布時間:2025/4/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

shell特殊符號cut命令

  • cut 分割,-d 分隔符 -f 指定段號 -c 指定第幾個字符
  • sort 排序, -n 以數字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2
  • wc -l 統計行數 -m 統計字符數 -w 統計詞
  • uniq 去重, -c統計行數
  • tee 和>類似,重定向的同時還在屏幕顯示
  • tr 替換字符,tr 'a' 'b',大小寫替換tr '[a-z]' '[A-Z]'
  • split 切割,-b大小(默認單位字節),-l行數

cut命令

  • cut命令用來截取某個字符串
  • 格式:cut –d “分割符” 文件名
  • -d:后面跟分割字符,分割字符用雙引號括起來;
  • -f:后面跟接第幾段字符串
  • -c:后面接第幾個字符

  • 截取第1到第3段
  • [root@linux-128 ~]# head -5 1.txt |cut -d ":" -f 1-3 root:x:0 bin:x:1 daemon:x:2 adm:x:3 lp:x:4
  • 截取第1段和第3段
  • [root@linux-128 ~]# head -5 1.txt |cut -d ":" -f 1,3 root:0 bin:1 daemon:2 adm:3 lp:4
  • 截取第2個字符
  • [root@linux-128 ~]# head -5 1.txt |cut -c 2 o i a d p
  • 截取第2個字符到第5個字符
  • [root@linux-128 ~]# head -5 1.txt |cut -c 2-5 oot: in:x aemo dm:x p:x:

    sort命令

    • sort命令用做排序,格式sort [-t 分割符] [-kn1,n2] [-nur],n1,n2指的是數字
    • -t 分割符
    • -k 按第幾列排序;區間范圍用逗號-k3,5
    • -n 按數字排序
    • -r 反序排序,按從打到小排序
    • -u 去重復
    • -un 字母開頭的會識別成重復內容,如skj1 a weotj 都會認為是重復內容,只顯示數字內容

  • sort 不加任何選項,從首行字符向后,依次按ASCII碼值進行比較,按升序排序
  • [root@linux-128 ~]# vim 2.txt 111 111 111 111aaa 121 !@#$@123 1asd abab abab adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin root:x:0:0:root:/root:/bin/bash
  • 以數字排序
  • [root@linux-128 ~]# sort -n 2.txt !@#$@123 abab abab adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin root:x:0:0:root:/root:/bin/bash 1asd 111 111 111 111aaa 121
    • 注意:如果有字母或者特殊符號,在數字排序中,都默認看成0.
  • 反向排序
  • [root@linux-128 ~]# sort -nr 2.txt 121 111aaa 111 111 111 1asd root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin abab abab !@#$@123
  • 去重復,這里把字母都看成了0,然后去重復。
  • [root@linux-128 ~]# sort -nu 2.txt abab 1asd 111 121

    wc命令

    • wc命令用于統計文檔的行數,字符數,單詞數。
    • -l 統計行數
    • -m統計字符數
    • -w統計單詞數

  • 查看文件3.txt 行數
  • [root@linux-128 ~]# cat 3.txt abab 1asd 111 121 [root@linux-128 ~]# wc -l 3.txt 4 3.txt
  • 查看文件3.txt字符有多少個,$為行尾字符
  • [root@linux-128 ~]# cat -A 3.txt abab$ 1asd$ 111$ 121$ [root@linux-128 ~]# wc -m 3.txt 18 3.txt
  • -w統計單詞,它是以空格或者空白字符來分割。
  • [root@linux-128 ~]# cat 3.txt abab 1asd 111 121 [root@linux-128 ~]# wc -w 3.txt 4 3.txt
  • 如果wc后面不加任何選項,直接跟文檔,則會把行數,單詞數,字符數依次輸出。
  • [root@linux-128 ~]# wc 3.txt4 4 18 3.txt

    uniq命令

    • uniq命令用來刪除重復的行,通常和sort連在一起使用
    • -c選項比較常用,它表示統計重復的行數,并把行數寫在前面

    [root@linux-128 ~]# sort 2.txt 111 111 111 111aaa 121 !@#$@123 1asd abab abab adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin root:x:0:0:root:/root:/bin/bash
  • 先排序然后刪除重復行
  • [root@linux-128 ~]# sort 2.txt |uniq -c3 1111 111aaa1 1211 !@#$@1231 1asd2 abab1 adm:x:3:4:adm:/var/adm:/sbin/nologin1 bin:x:1:1:bin:/bin:/sbin/nologin1 daemon:x:2:2:daemon:/sbin:/sbin/nologin1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin1 root:x:0:0:root:/root:/bin/bash[root@linux-128 ~]# sort 2.txt |uniq 111 111aaa 121 !@#$@123 1asd abab adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin root:x:0:0:root:/root:/bin/bash

    tee命令

    • tee命令后面文件名,其作用類似于重定向>;但是它比重定向多一個顯示在屏幕上的功能;
    [root@linux-128 ~]# cat 3.txt >4.txt [root@linux-128 ~]# cat 3.txt |tee 4.txt abab 1asd 111 121
  • tee –a 相當于追加重定向>>;它多了一個顯示在屏幕上的功能
  • [root@linux-128 ~]# cat 3.txt |tee -a 4.txt abab 1asd 111 121 [root@linux-128 ~]# cat 3.txt |tee -a 4.txt abab 1asd 111 121 [root@linux-128 ~]# cat 4.txt abab 1asd 111 121 abab 1asd 111 121 abab 1asd 111 121

    命令tr

    • tr命令用于替換字符
    [root@linux-128 ~]# cat 3.txt |tr 'a' 'A' AbAb 1Asd 111 121[root@linux-128 ~]# cat 3.txt |tr '[a-z]' '[A-Z]' ABAB 1ASD 111 121

    split命令

    • split 用于分割文檔
    • split -l 按行來分割
    • split -b 按大小來分割
  • split -b
  • [root@linux-128 ~]# mkdir test [root@linux-128 ~]# cd test [root@linux-128 test]# find /etc/ -type f -name "*.conf" -exec cat {} >1.txt \; [root@linux-128 test]# du -sh 1.txt 252K 1.txt [root@linux-128 test]# split -b 50k 1.txt [root@linux-128 test]# ls 1.txt xaa xab xac xad xae xaf
  • split –l
  • [root@linux-128 test]# wc -l 1.txt 6479 1.txt [root@linux-128 test]# split -l 1000 1.txt [root@linux-128 test]# ls 1.txt xaa xab xac xad xae xaf xag
    • split 后面如果不指定文件名,則會以xaa,xab。。。這樣的文件名來存取切割后的文件
  • 指定目標分割文件名 為abc.
  • [root@linux-128 test]# split -l 1000 1.txt abc. [root@linux-128 test]# ls 1.txt abc.aa abc.ab abc.ac abc.ad abc.ae abc.af abc.ag

    特殊符號

    • $ 變量前綴,!$組合,正則里面表示行尾
    • ;多條命令寫到一行,用分號分割
    • ~ 用戶家目錄,后面正則表達式表示匹配符
    • & 放到命令后面,會把命令丟到后臺
    • 重定向 > 追加重定向>> 錯誤重定向2> 錯誤追加重定向2>> 正確和錯誤重定向&>
    • [ ] 指定字符中的一個,[0-9],[a-zA-Z],[abc]
    • || 和 && ,用于命令之間

    • $:可以作為變量前面的標示符,可以和!結合起來使用,在正則里面表示行尾
    [root@linux-128 test]# ls /root 11.txt 123 1.txt 2.txt 3.txt anaconda-ks.cfg d6z 11.txt.bak 1a.txt +2 321.txt 4.txt a.txt test 12 1.log 23.txt 321.txt.bak ab.txt b.txt 工號.txt [root@linux-128 test]# ls !$ ls /root 11.txt 123 1.txt 2.txt 3.txt anaconda-ks.cfg d6z 11.txt.bak 1a.txt +2 321.txt 4.txt a.txt test 12 1.log 23.txt 321.txt.bak ab.txt b.txt 工號.txt
    • ; 多條命令寫在一行,用;分割
    [root@linux-128 ~]# cat 2.txt;cat 3.txt 111 111aaa 121 111 abab 1asd abab !@#$@123 111 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin abab 1asd 111 121
    • ~ 家目錄,后面正則表示匹配符

    • 重定向(正確) > ,會覆蓋以前的內容

    [root@linux-128 ~]# echo "121212">3.txt [root@linux-128 ~]# cat 3.txt 121212
    • 追加重定向(正確)>>
    [root@linux-128 ~]# echo "ababab">>3.txt [root@linux-128 ~]# cat 3.txt 121212 Ababab
    • 錯誤重定向 2>
    [root@linux-128 ~]# cat 5.txt 2>6.txt [root@linux-128 ~]# cat 6.txt cat: 5.txt: 沒有那個文件或目錄
    • 錯誤追加重定向 2>>
    [root@linux-128 ~]# cat 6.txt cat: 5.txt: 沒有那個文件或目錄 cat: 5.txt: 沒有那個文件或目錄
    • &> 錯誤和正確都重定向到某個文件里面。
    [root@linux-128 ~]# cat 3.txt 5.txt &> 6.txt [root@linux-128 ~]# cat 6.txt 121212 ababab cat: 5.txt: 沒有那個文件或目錄
    • shell中的鏈接符號 && || ;
    • && 前面命令執行成功后,才會執行后面的命令;如果前面執行不成功,后面命令不執行
    • || 前面的命令執行不成功,才會執行后面的命令;如果前面命令執行成功,后面命令不執行
    • ; 左邊的命令成功與否,后邊的命令都會執行

    轉載于:https://my.oschina.net/u/3706916/blog/1575377

    總結

    以上是生活随笔為你收集整理的shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。