亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • ????df -h | awk '{print $5}' #df第五字段數據

    ????df -h | grep "/dev/sda5" | awk '{print $5}'????#只要根分區的第五段數據

    ????df -h | grep "/dev/sda5" | awk '{print $5}' | cut -d "%" -f 1????#去掉%

    ????awk 'BEGIN{print "test"}{print $2 "\t" $4}' student.txt????#先執行BEGIN

    ????awk 'END{print "test"}{print $2 "\t" $4}' student.txt????#最后執行END

    ???? cat /etc/passwd | grep /bin/bash | awk 'BEGIN{FS=":"}{print $1 "\t" $3}'????#先執行分隔符,FS內置變量標識":"

    ???? cat student.txt | grep -v Name | awk '$4>=70{print $2}'????#不看名字,只看第二個字段大于70分的成績


    查看全部
  • awk是一個數據處理工具,相比于sed常常作用于一整行的處理,將一行分成數個”字段“來處理。?

    awk命令

    ????awk '條件類型1{動作1}條件類型2{動作2}...' 文件名

    條件(Pattern):

    ????一般使用關系表達式作為條件,比如x>10,x<=10

    動作(Action)

    ????格式化輸出

    ????流程控制語句

    舉例:

    ????awk '{printf $2 "\t" $4 "\n"}' student.txt #\t\n一定要加"" $2代表第二個字段

    ????awk '{print $2 "\t" $4}' student.txt #print自動換行

    awk執行流程

    ????awk先讀取第一行數據再判斷條件,因為這里沒寫條件,將文件名student.txt賦值給$0,$2是第二個字段$4是第四個字段。

    ????再讀取第二行數據重復上述步驟


    查看全部
  • printf "輸出類型輸出格式" 輸出內容?

    輸出類型:?

    ????%ns????????輸出字符串。n是數字指代輸出幾個字符?

    ????%n????????輸出整數。n是數字,指代輸出幾個數字?

    ????%m.nf????????輸出浮點數。m和n是數字,指代輸出的整數位數和小數位數。如%8.2f代表共輸出8位數,其中2是小數位數,6位是整數?

    輸出格式:?

    ????\a????????輸出警告聲音?

    ????\b????????輸出退格鍵,也就是Backspace鍵?

    ????\f????????清空屏幕

    ????\n????????換行?

    ????\r????????回車,也就是Enter鍵?

    ????\t????????水平輸出退格鍵,也就是Tab鍵?

    ????\v????????垂直輸出退格鍵,也就是Tab鍵?

    舉例:

    ???? echo 123456

    ???? echo 1 2 3 4 5 6

    ???? printf 1 2 3 4 5 6

    ???? printf %s 1 2 3 4 5 6

    ???? printf %s %s %s 1 2 3 4 5 6

    ???? printf '%s %s %s' 1 2 3 4 5 6

    ???? printf '%s\t%s\t%s\n' 1 2 3 4 5 6

    ????

    ???? vi student.txt

    ???? printf student.txt #輸出的只是文件名,不是里面內容

    ???? echo student.txt #輸出的只是文件名,不是里面內容

    ???? printf $(cat student.txt) #只顯示ID

    ???? printf 's' $(cat student.txt) #沒加分割,所有內容連成一篇輸出

    ???? printf '%s\t%s\t%s\t%s\t\n' $(cat student.txt)


    查看全部
  • 引例????????????grep行提取,cut列提取;?

    ????useradd user1

    ????vi /etc/passwd

    ????grep "/bin/bash" /etc/passwd | grep -v "root"????#-v排除root用戶

    cut命令

    ????cut [選項] 文件名????#默認是TAB制表符?????

    ????選項:

    ????-f 列號:提取第幾列(從1開始)?

    ????-d 分隔符:按照指定分隔符分割列

    舉例:

    ????vi student.txt??????#以下是編輯內容

    ????ID? ? ? Name? ? gender? Mark

    ????1? ? ? ?furong? F? ? ? ?85

    ????2? ? ? ?fenggj? F? ? ? ?60

    ????3? ? ? ?cang? ? F? ? ? ?70

    ?

    ????cut -f 2,4 student.txt

    ????grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":"

    ????df -h????????#系統分區使用狀況

    ????df -h | cut -f 1,5????#沒有找到TAB制表符,整行數據都是第一列內容

    ????cut -f 列號,列號 (多個列號用逗號隔開;這個方法默認的文件以TAB制表符)?


    查看全部
  • 命令模式????????d+G? ? ? ? 鼠標在最前面刪除所有內容

    ????grep "[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}" test.txt????#日期

    ????grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" test.txt????#IP地址

    查看全部
  • 1、轉義符“\”

    ????讓特殊的符號喪失它的作用,只是表示這個符號本身

    ????"\.$"? ?#匹配以"."結尾的行,使特殊符號"."失去作用

    2、"\{n\}" 表示其前面的字符恰好出現n次

    ????"a\{3\}"? ? #匹配a字母連續出現三次的字符串????grep?"a\{3\}" test.txt

    ????"a\{3\}u"????#u前面出現連續三次的a字符串????grep?"xa\{3\}u" test.txt? ?

    ????"[0-9]\{3\}"? ?#匹配包含連續的三個數字的字符串,最好加上定界符,即左右加上匹配的字母,如"a[0-9]\{3,\}b",否則易匹配錯誤,因為正則是包含匹配

    3、"\{n,\}"表示其前面的字符出現不小于n次

    ????"xc\{1,3\}u"????#匹配在字母x和u之間最少一個c,最多三個c

    ????"^[0-9]\{3,\}[a-z]"????#匹配最少用連續三個數字開頭包含小寫字母的行

    4、"\{n,m\}"匹配其前面的字符出現n-m次的行

    ????"sa\{1,3\}i"????#匹配以s開頭、i結尾,且s和i之間有1-3個a的行


    查看全部
  • 1、"."匹配除了換行符外任意一個字符

    ????"s..d"????#會匹配在s和d這兩個字母之間一定有兩個字符的單詞

    ????"s.*d"????#匹配在s和d字母之間有任何字符

    ????".*"????????#匹配所有內容

    ????grep "s..d" test.txt

    ????grep "s.*d" test.txt

    ????grep ".*" test.txt????????#查找所有內容

    2、"^"匹配行首,“$”匹配行尾

    ????"^M"? ?#匹配以大寫字母"M"開頭的行

    ????"n$"? ?#匹配以小寫字母“n”結尾的行

    ????"^$"? ?#會匹配空白行

    ????grep -n "^$" test.txt ????#-n顯示空白行號

    3、"[]"匹配中括號內指定的任意一個字符,只匹配一個字符,與通配符用法相同

    ????"s[oa]id"? ?#匹配s和i字母中,要么是a,要么是o

    ????"[0-9]"? ?#匹配任意一個數字

    ????"^[0-9]"? ?#匹配以數字開頭的行

    ????"^[0-9]$"????#匹配以數字結尾的行

    ????"[a-z]$"????#表示匹配以小寫字母結束的行

    ????"^[^a-z]"? ?#匹配不用小寫字母開頭的行,“[]”內的“^”表示取反

    ????"[^a-zA-Z]$"? ?#匹配不以字母結尾的行,linux中,a-zA-Z表示所有字母


    查看全部
  • "*"前一個字符匹配0次,或任意多次????

    ????vi test.txt

    ????"a*"????#匹配所有內容,包括空白行

    ????"aa*"????#匹配至少包含有一個a的行

    ????"aaa*"????#匹配最少包含有兩個連續a的字符串

    ????"aaaaa*"????#匹配最少包含有四個連續a的字符串

    舉例:

    ????grep "a*" test.file????#*前加任意字符代表該字符重復0次到任意多次

    ????grep "aa*" test.file

    ????grep "aaa*" test.file



    查看全部
  • 正則表達式與通配符?

    通配符?

    ????* ????????代表匹配任意內容?

    ????? ????????代表匹配任意一個內容

    ????[] ????代表中括號中一個字符?

    ????正則表達式用來在文件中匹配符合條件的字符串,正則是包含匹配。grep,awk,sed等命令可以支持正則表達式。?

    ????通配符用來匹配符號條件的文件名,通配符是????匹配。ls,find,cp這些命令不支持正則表達式,所以只能使用shell自己的通配符來進行匹配。

    ????touch abc;touch abcd

    ????find . -name "abc*"????#必須加上""

    ????cat anaconda-ks.cfg????????#安裝日記

    ????grep "size" anaconda-ks.cfg????#在安裝日記里找size


    查看全部
  • ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?正則表達式?

    正則表達式是什么?

    ????正則表達式是用于描述字符排列和匹配模式的一種語法規則。它主要用于字符串的模式分割、匹配、查找及替換操作。主要用于模糊匹配。

    查看全部
  • 排序命令sort

    查看全部
  • 統計命令wc

    查看全部
  • sed [選項] [動作] 文件名

    sed基本選項

    查看全部
  • sed選項
    查看全部
  • sed動作
    查看全部

舉報

0/150
提交
取消
課程須知
學習本門課程前,還請大家學習慕課網《Tony老師聊shell》系列的前三篇課程!
老師告訴你能學到什么?
1、掌握shell中的正則表達式 2、掌握常用字符截取命令的使用 3、掌握常用字符處理命令的使用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!