標籤:馬哥教育作業
用linux已學只是完成以下作業1. 將/etc/issue 檔案中的內容轉換為大寫後儲存至/tmp/issue.out 檔案中
思考:tr的普通應用,加上管道的輸出到檔案
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/85/3D/wKioL1ed0LKh8c4SAAAii3daiFE572.png" title="1.png" alt="wKioL1ed0LKh8c4SAAAii3daiFE572.png" />
2. 將當前系統登入使用者的資訊轉換為大寫後儲存至/tmp/who.out 檔案中
思考:同上
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/85/3D/wKiom1ed0MfDW-SpAAAfpAuHqO4972.png" title="2.png" alt="wKiom1ed0MfDW-SpAAAfpAuHqO4972.png" />
3. 一個linux使用者給root 發郵件,要求郵件標題為”help” ,郵件內文如下:Hello, I am 使用者名稱,thesystem version is here,please help me to check it ,thanks!作業系統版本資訊
思考:管道的應用,echo命令內whoami和cat查看作業系統資訊的命令替換;以及mail命令的使用
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/85/3D/wKiom1ed0QGBaBHSAABHemNN4jM114.png" style="float:none;" title="3.png" alt="wKiom1ed0QGBaBHSAABHemNN4jM114.png" />
信件內容如下:
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/85/3D/wKioL1ed0QLhL47kAABOfLXNjTE307.png" style="float:none;" title="4.png" alt="wKioL1ed0QLhL47kAABOfLXNjTE307.png" />
4. 將/root/下檔案清單,顯示成一行,並檔案名稱之間用 空格 隔開
思考:manecho中,根據echo的定義描述:echo - display a line of text,以一行模式顯示文本
無需太過複雜地將換行\n替換為[:space:]
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/85/3D/wKiom1ed0UfzXj49AAAkD_NOJuI233.png" title="5.png" alt="wKiom1ed0UfzXj49AAAkD_NOJuI233.png" />
5. file1 檔案 的 內容為:”1 2 3 4 5 6 7 8 9 10” 計算出所有數位總和
思考:將1 2 3 4 5 6 7 89 10中的空格替換成+,傳遞給bc進行計算,man bc瞭解bc的計算格式
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/85/3D/wKioL1ed0XHCgAx_AAAcV2tkFeU940.png" title="6.png" alt="wKioL1ed0XHCgAx_AAAcV2tkFeU940.png" />
6. 刪除Windows文字檔中的‘^M‘ 字元
思考:window與linux檔案的換行區別在於:windos檔案換行為斷行符號+$,Linux檔案換行僅僅為$,通過#cat -A FILENAME可以查看到windows檔案的^M,查tr的man文檔,可以看到\r return
方法一:-d, --delete
delete characters in SET1, do not translate 刪除SET1的字元
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/85/3D/wKioL1ed0ciSNx2wAAA2aHYIxPM875.png" style="float:none;" title="7.png" alt="wKioL1ed0ciSNx2wAAA2aHYIxPM875.png" />
方法二:
-s, --squeeze-repeats
replace each input sequence of a repeated character that is listed in SET1 with
a single occurrence of that character
簡單地理解為:將匹配SET1的字元,去掉重複(連續且相同則為重),只顯示一個。
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/85/3D/wKiom1ed0cmSJFP8AAA2a8YNc1I972.png" style="float:none;" title="8.png" alt="wKiom1ed0cmSJFP8AAA2a8YNc1I972.png" />
7. 處理字串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4 ”,只保留其中的數字和空格
方法一:
思考:
-c, -C, --complement
use the complement of SET1 使用SET1的補集
-cd即為刪除SET1的補集
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/85/3D/wKiom1ed1GnS-RubAAAsYpyYyRY420.png" style="float:none;" title="9.png" alt="wKiom1ed1GnS-RubAAAsYpyYyRY420.png" />
方法二:
思考:-d刪除字母[:alpha:] 和標點符號[:punct:]
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/85/3D/wKioL1ed1G6DN8qBAAAVl8btyIw881.png" style="float:none;" title="10.png" alt="wKioL1ed1G6DN8qBAAAVl8btyIw881.png" />
8. 將PATH變數每個目錄顯示在獨立的一行
思考:簡單地管道傳遞,替換
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/85/3D/wKioL1ed1enhK9oyAAAXpB7p5Mk226.png" title="11.png" alt="wKioL1ed1enhK9oyAAAXpB7p5Mk226.png" />
9. 刪除指定檔案的空行
思考:用-s地重複資料刪除\n\n,
考慮到要編輯軟體,tr無法進行檔案編輯,所以引用mv
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/85/3D/wKiom1ed1pazIN1cAAAqgIB-ve4220.png" title="12.png" alt="wKiom1ed1pazIN1cAAAqgIB-ve4220.png" />
疑問:如果檔案第一行是空行,個人沒想到方法。考慮用sed命令sed ‘/^$/d‘ -i FILENAME
10. 將檔案中每個單詞(字母)顯示在獨立的一行,並無空行
思考:-c字母的補集,替換成\n,並加-s去重
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/85/3E/wKiom1eeAZmw4junAAAkPeqHZdo565.png" title="Image 20160731214751.png" alt="wKiom1eeAZmw4junAAAkPeqHZdo565.png" />
疑問:以空行開頭的同樣無法刪除。需引進sed命令
馬哥教育7月28日作業