鍍金池/ 教程/ Linux/ shell 學(xué)習(xí)第十二天----行與字符串
shell 學(xué)習(xí)四十一天----列出文件 ls 和 od 命令
shell 學(xué)習(xí)小結(jié)
shell 學(xué)習(xí)第二十八天----case 語(yǔ)句
shell 學(xué)習(xí)四十四天----尋找文件
shell 學(xué)習(xí)三十五天----波浪號(hào)展開(kāi)與通配符
shell 學(xué)習(xí)三十八天----執(zhí)行順序和 eval
shell 學(xué)習(xí)四十八天----文件校驗(yàn)和匹配
shell 學(xué)習(xí)四十天----awk 的驚人表現(xiàn)
shell 學(xué)習(xí)第十一天----sed 正則的精確控制
shell 學(xué)習(xí)第十七天----awk 命令
shell 學(xué)習(xí)三十九天----內(nèi)建命令
shell 學(xué)習(xí)四十五天----xargs
shell 學(xué)習(xí)三十七天----引用
shell 學(xué)習(xí)第十六天----join 練習(xí)
shell 學(xué)習(xí)第二十四天----提取開(kāi)頭或結(jié)尾數(shù)行
shell 學(xué)習(xí)第九天----分組
shell 學(xué)習(xí)第五天----基本的 I/O 重定向
shell 學(xué)習(xí)第十五天----使用 cut 選定字段
shell 學(xué)習(xí)四十六天----文件系統(tǒng)的空間信息 df 和 du 命令
shell 學(xué)習(xí)第八天----擴(kuò)展正則表達(dá)式 (ERE)
shell 學(xué)習(xí)第十九天----文本塊排序
shell 學(xué)習(xí)第二十一天----重新格式化段落
shell 學(xué)習(xí)三十六天----命令替換
shell 學(xué)習(xí)第二十天----sort 的其他內(nèi)容以及 uniq 命令
shell 學(xué)習(xí)四十二天----使用 touch 更新文件時(shí)間
shell 學(xué)習(xí)五十一天----top 命令查看進(jìn)程列表
shell 學(xué)習(xí)第一天
shell 學(xué)習(xí)五十四天----進(jìn)程系統(tǒng)調(diào)用的追蹤 strace
shell 學(xué)習(xí)五十天----查看進(jìn)程 ps 命令
shell 學(xué)習(xí)第二十七天----退出狀態(tài)和 if 語(yǔ)句
shell 學(xué)習(xí)第二十三天----打印
shell 學(xué)習(xí)三十三天----關(guān)于重定向
shell 學(xué)習(xí)四十九天----進(jìn)程建立
shell 學(xué)習(xí)第三十天----break,continue,shift,getopts
shell 學(xué)習(xí)五十五天----進(jìn)程記賬
shell 學(xué)習(xí)總結(jié)一
shell 學(xué)習(xí)第二十六天----變量與算數(shù)
shell 學(xué)習(xí)第二十二天----計(jì)算行數(shù), 字?jǐn)?shù)以及字符數(shù)
shell 學(xué)習(xí)五十八天----/proc 文件系統(tǒng)
shell 學(xué)習(xí)第二十五天----神器的管道符
shell 學(xué)習(xí)第三十二天----read 讀取一行
sheel 學(xué)習(xí)第三天
shell 學(xué)習(xí)----小結(jié)
shell 學(xué)習(xí)第十八天----文本排序
shell 學(xué)習(xí)第三十一天----函數(shù)問(wèn)題
shell 學(xué)習(xí)第十天----sed 查找與替換
shell 學(xué)習(xí)四十三天----臨時(shí)性文件的建立與使用
shell 學(xué)習(xí)四十七天----文件比較 cmp,diff,patch
shell 學(xué)習(xí)三十四天----printf 詳解
shell 學(xué)習(xí)五十七天 ----linux 任務(wù)管理,針對(duì)上一講的總結(jié)和擴(kuò)展
shell 學(xué)習(xí)第六天----小結(jié)
shell 學(xué)習(xí)第十三天----sed 案例分析
shell 學(xué)習(xí)第七天----基礎(chǔ)正則表達(dá)式 (BRE)
shell 學(xué)習(xí)第十二天----行與字符串
shell 學(xué)習(xí)小結(jié)四
shell 學(xué)習(xí)第二十九天----循環(huán)
shell 學(xué)習(xí)五十二天----刪除進(jìn)程 kill 命令
shell 學(xué)習(xí)五十六天----延遲進(jìn)程調(diào)度
shell 學(xué)習(xí)第四天----華麗的 printf 輸出
shell 學(xué)習(xí)第十五天----join 連接字段
shell 學(xué)習(xí)完結(jié)篇----希望你能看到
shell 學(xué)習(xí)第二天
shell 學(xué)習(xí)五十三天----捕獲信號(hào) trap

shell 學(xué)習(xí)第十二天----行與字符串

行 V.S. 字符串

大部分建議等程序都是處理輸入數(shù)據(jù)的行,在這些情況下,不會(huì)有內(nèi)嵌的換行字符出現(xiàn)在將要匹配的數(shù)據(jù)中,^ 與 $ 則分別表示行的開(kāi)頭與結(jié)尾。

很多應(yīng)用程序會(huì)將數(shù)據(jù)是位記錄與字段的結(jié)合。一條記錄指的是相關(guān)信息的翻個(gè)集合,例如以企業(yè)來(lái)說(shuō),記錄可能含有顧客,供應(yīng)商以及員工等數(shù)據(jù),以學(xué)校來(lái)說(shuō),則可能有學(xué)生數(shù)據(jù)。而字段指的就是記錄的組成部分,例如姓名或者街道地址。

linux 鼓勵(lì)使用文本類(lèi)型數(shù)據(jù),因此系統(tǒng)上最常見(jiàn)的數(shù)據(jù)存儲(chǔ)類(lèi)型就是文本了,在文本下,一行表示一天記錄。一行內(nèi)分割字段的兩種慣例是:

  • 第一種: 空格或者 tab 鍵 (制表符)。
name sex
syx   M
  • 第二種是使用特定的定界符來(lái)分割字段,例如冒號(hào)
name:sex
syx:M

兩種方式各有優(yōu)缺點(diǎn)。最明顯的不同時(shí)是在處理多個(gè)連續(xù)重復(fù)的戒定福之時(shí)。使用空白分隔時(shí),通常多個(gè)連續(xù)出現(xiàn)的空格或制表字符都看做一個(gè)定界符。濡染。若使用的特殊字符分隔,則每個(gè)定界符都會(huì)隔開(kāi)一個(gè)字段。

以定界符分割字段最好的例子就是 /etc/passwd,在這個(gè)文件里,一行標(biāo)識(shí)系統(tǒng)的一個(gè)用戶,每個(gè)字段都是以冒號(hào)分隔。

syx5:x:511:513::/home/syx5:/bin/bash

該文件含有七個(gè)字段,含義分別如下:

  1. 用戶名稱
  2. 加密后的密碼 (如賬號(hào)為停用狀態(tài),此處為一個(gè)星號(hào),或者若加密后的密碼文件存儲(chǔ)于另外的 /etc/shadow 里,則這里可能是其他字符)
  3. 用戶的 ID 編號(hào)
  4. 用戶組的 ID 編號(hào)
  5. 用戶的姓名,有時(shí)恢復(fù)其他的相關(guān)數(shù)據(jù) (電話號(hào),辦公室號(hào)碼)
  6. 根目錄
  7. 登陸的 shell