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

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

行 V.S.字符串

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

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

linux 鼓勵(lì)使用文本類型數(shù)據(jù),因此系統(tǒng)上最常見的數(shù)據(jù)存儲(chǔ)類型就是文本了,在文本下,一行表示一天記錄.一行內(nèi)分割字段的兩種慣例是:
第一種:空格或者 tab 鍵(制表符).
name sex
syx M
第二種是使用特定的定界符來分割字段,例如冒號(hào)
name:sex
syx:M
兩種方式各有優(yōu)缺點(diǎn).最明顯的不同時(shí)是在處理多個(gè)連續(xù)重復(fù)的戒定福之時(shí).使用空白分隔時(shí),通常多個(gè)連續(xù)出現(xiàn)的空格或制表字符都看做一個(gè)定界符.濡染,若使用的特殊字符分隔,則每個(gè)定界符都會(huì)隔開一個(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