第三週作業

2021-08-20 11:16:07 字數 1706 閱讀 7235

1、刪除centos7系統/etc/grub2.cfg檔案中所有以空白開頭的行行首的空白字元

sed -r 's/^[[:blank:]]+//' /etc/grub2.cfg

-r表示支援擴充套件正規表示式,sed命令匹配空白開頭一次或者多次,替換為沒有,相當於刪除。

2、刪除/etc/fstab檔案中所有以#開頭,後面至少跟乙個空白字元的行的行首的#和空白字元

sed -r 's/^#[[:blank:]]+//'g /etc/fstab

^是首行錨定,以#開頭後面跟空白字元一次或者多次替換為空白,g代表匹配直到最後一行

3、在centos6系統/root/install.log每一行行首增加#號

sed -r 's/installing/i\#&/' /root/install.log

匹配「installing」詞,i是追加,&代表第乙個//中匹配到的詞,追加到#號後面,等於是每一行都追加#。

4、在/etc/fstab檔案中不以#開頭的行的行首增加#號

sed -r 's/^(^#*)/#/g' /etc/fstab

(^#*)代表以#號開頭後面是任意的檔名,/^(^#*)/代表變數裡面的內容取反。g是替換到最後一行。

5、處理/etc/fstab路徑,使用sed命令取出其目錄名和基名

取目錄名:echo "/etc/rc.d/testdir/test" | sed -r 's/^(\/.*\/)[^/]+\/?/\1/g'

或:|sed -r 's@(^/.*/).*@\1@'

sed -r  's@[^\/]+$@@'

取基名:echo "/etc/fstab/tesdir/test" |sed -r 's@^/.*/@@'

這次就沒讓大家進入目錄,此題考的是大家前幾節課講萬用字元"ls" 時候大家有沒有注意聽。提到過這個部分。

6、利用sed 取出ifconfig命令中本機的ipv4位址

centos6

ifconfig | sed -n '2p' | sed  's/^.*r://'  | sed 's/ .*//'

ifconfig eth0 | sed -n '2p' | sed -r 's@^.*r:@@' | sed -r 's@[[:space:]].*@@'

centos7

ifconfig ens33 | sed -n '2p' | sed -r 's@^[[:space:]].*inet[[:space:]]@@' | sed -r 's@[[:space:]].*@@'

7、統計centos安裝光碟中package目錄下的所有rpm檔案的以.分隔倒數第二個欄位的重複次數

ls /media/packages/ | grep "rpm$" | sed -r 's@.*\.(.*)\.rpm@\1@' | sort | uniq -c

8、統計/etc/init.d/functions檔案中每個單詞的出現次數,並排序(用grep和sed兩種方法分別實現)

grep

grep -o "[[:alpha:]]*" /etc/init.d/functions | sort | uniq -c | sort -nr

sedsed -nr 's/[[:alpha:]]+/\n/g'p /etc/init.d/functions | sort | uniq -c | sort -nr

9、將文字檔案的n和n+1行合併為一行,n為奇數行

sed -n 'n;s/\n//'p /etc/passwd

第三週作業

實驗作業 1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。2.編寫程式輸入乙個三角形的三條邊,計算其面積和周長 3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。4.編寫乙個程式,輸入乙個一元二次方程的三個係...

第三週作業

要求 1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。2.編寫程式輸入乙個三角形的三條邊,計算其面積和周長 3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。4.編寫乙個程式,輸入乙個一元二次方程的三個係數,...

第三週作業

第一題 輸入課本各個例題,除錯執行程式,並分析程式。例1 include using namespace std int main 例8 includeusing namespace std int main else cout this is not a endl return 0 第三題 編寫程...