文本文件student
姓名 學(xué)號(hào) 語文成績 數(shù)學(xué)成績 英語成績 總成績
張三 001 80 90 95 265
李四 002 1 85 90 245
趙五 003 65 90 70 225
王六 004 60 40 80 180
周七 005 90 55 85 230
齊八 006 85 90 70 245
平均成績、最高分
一、grep--按行篩選(僅查找)
1.grep通常用來用來在文件或者上一個(gè)命令的輸出結(jié)果中,篩選出我們所需要的內(nèi)容
2.cat integer | grep 2 --------目的是在integer這個(gè)文件中,篩選出帶有2的行。
3.cat integer | grep +正則表達(dá)式(vim、grep、awk 、sed 都支持正則表達(dá)式,也正是因?yàn)橛捎谒鼈冎С终齽t,才顯得它們強(qiáng)大)
4.cat 2 grep integer 同樣是在文件中找到帶2的行
5.ls -l /etc/ | grep -v init 的目的是在管道左側(cè)命令的輸出結(jié)果中篩選出不包含 init這個(gè)字符串的內(nèi)容。(相當(dāng)于 grep init 的取反)
二、sed 按行修改(增刪改查)
在這種情況下,:delete命令回到line所指定的行(默認(rèn)為當(dāng)前行),然后刪除count行文本(包括當(dāng)前行).。插入操作將指定的鍵與新值相關(guān)聯(lián),刪除操作可刪除指定的鍵。選擇某一行記錄,單擊鼠標(biāo)右鍵,在快捷菜單中執(zhí)行“刪除”命令,可以刪除指定行記錄數(shù)據(jù)。
定位第64行(參照句出現(xiàn)的行號(hào),并非需要修改的直接行號(hào))做如下操作,每行前的 - 號(hào)代表刪除行,+ 號(hào)代表添加行:。定位第255行(參照句出現(xiàn)的行號(hào),并非需要修改的直接行號(hào))做如下操作,每行前的 - 號(hào)代表刪除行,+ 號(hào)代表添加行:。 寫一個(gè)程序以比較兩個(gè)文本文件的內(nèi)容是否相同,并輸出兩文件內(nèi)容首次 不同的行號(hào)和字符位置。
3.cat -n student | sed '3,5d' --輸出student的內(nèi)容,并將3到5行刪除
4.cat -n student | sed '1a abcdfe' --輸出student的內(nèi)容,并在第一行后面,第二行前l(fā)inux命令,插入abcdfe.
5. cat -n student | sed '1c abcd' --輸出student的內(nèi)容,并將第一行修改為abcd
6.cat -n student | sed '3,5p' ---輸出student的內(nèi)容,只顯示3到5行
7.命令sed當(dāng)使用在查找的這個(gè)場景中時(shí),要加-n 選項(xiàng)參數(shù),不加n數(shù)據(jù)會(huì)重復(fù),顯示原文本和處理后的數(shù)據(jù)。
8.cat -n student | sed -n '/張三/p' ---輸出student的內(nèi)容,只顯示含有張三的行。
三、AWK按行處理(對每行文本做更復(fù)雜的處理 )
1.命令A(yù)WK通常會(huì)按照行去處理文本,它要做的第一個(gè)事就是按照行進(jìn)行切割,如果指定切割符就按照指定的走,沒有就按照默認(rèn)的空字符。
2.cat student | awk '{print $2}' (awk相當(dāng)于split) ----這條命令的作用就是對student的內(nèi)容按行處理,每行使用空格進(jìn)行切割,切割后,第一列稱為$1,第二列稱為$2,未切割的原始數(shù)據(jù)是$0,print就是在屏幕上輸出對應(yīng)變量的值。
3.輸入:cat/etc/password
輸出:root(用戶):x:0(user id用戶id):0(用戶組對應(yīng)id):root(全名):/root(家目錄):/bin/bash(使用的命令提示符的執(zhí)行程序/shell程序)