通過幫網友解答問題訓練同學們使用awk,sed案例

2021-09-05 06:45:09 字數 2732 閱讀 6734

由此題答案,我們看出,玩運維,技術僅僅是基礎,思想才是上層建築,

簡單、易用是運維追求的目標,本文法3,法5堪稱最佳答案。

問題:某成都網友劉劉群內提出這樣的問題,希望同學們幫他解答下。

問題如下:

成都@劉劉(13888188)  21:26:58

ls /root  後 我看到了這三個檔案

amp-content-display-portlet-1.0.1-20120829.081044-11.war

amp-facebook-post-editor-1.0.1-20120829.084615-1.war

amp-services-portlet-1.0.2-20120829.085733-3.war

然後我要寫個指令碼,把版本號及後面的數字都給遮蔽了,只匹配檔名,請問下這段匹配的語句該如何寫啊?

這是群裡網友給他的解法:

find /root/test/ | awk -f "/" '' |awk -f "." '' | sed   -e   "s/-1//g "

這個解法可以實現,但是有點字元太多了,不夠專業。請大家發揮你們學習的技術,給出你們認為最佳的答案。現在到了大家亮劍的時候了。

(to 老男孩培訓12期(面授加網路)全體學生)

由於方法太多,這裡我們僅限制使用sed,awk完成。

測試檔案:

[root@oldboy ~]# cat test.log                           

amp-content-display-portlet-1.0.1-20120829.081044-11.war

amp-facebook-post-editor-1.0.1-20120829.084615-1.war

amp-services-portlet-1.0.2-20120829.085733-3.war

amp-facebook-account-editor-1.0.1-20120829.081353-15.war 

amp-inbound-processor-hook-1.0.1-20120829.081546-9.war

amp-vcr-editor-portlet-1.0.1-20120829.081801-21.war

法1

[root@oldboy ~]# sed 's#\(^.*\)-1\..*\.war#\1.war#g' test.log

amp-content-display-portlet.war

amp-facebook-post-editor.war

amp-services-portlet.war

amp-facebook-account-editor.war 

amp-inbound-processor-hook.war

amp-vcr-editor-portlet.war

法2

[root@oldboy ~]# sed -r 's/(.*.)-(1.0.*.)/\1.war/' test.log

amp-content-display-portlet.war

amp-facebook-post-editor.war

amp-services-portlet.war

amp-facebook-account-editor.war

amp-inbound-processor-hook.war

amp-vcr-editor-portlet.war

法3(最佳答案,符合簡單、易用原則)

[root@oldboy ~]# awk -f "-1" '' test.log

amp-content-display-portlet.war

amp-facebook-post-editor.war

amp-services-portlet.war

amp-facebook-account-editor.war

amp-inbound-processor-hook.war

amp-vcr-editor-portlet.war

法4

[root@oldboy ~]# awk -f "-[0-9].*"  '' test.log

amp-content-display-portlet.war

amp-facebook-post-editor.war

amp-services-portlet.war

amp-facebook-account-editor.war

amp-inbound-processor-hook.war

amp-vcr-editor-portlet.war

法5(最佳答案,符合簡單、易用原則)

[root@oldboy ~]# sed  's/-[0-9].*/.war/' test.log

amp-content-display-portlet.war

amp-facebook-post-editor.war

amp-services-portlet.war

amp-facebook-account-editor.war

amp-inbound-processor-hook.war

amp-vcr-editor-portlet.war

法6

通過幫網友解答問題訓練同學們使用awk,sed案例

由此題答案,我們看出,玩運維,技術僅僅是基礎,思想才是上層建築,簡單 易用是運維追求的目標,本文法3,法5堪稱最佳答案。問題 某成都劉劉群內提出這樣的問題,希望同學們幫他解答下。問題如下 成都 劉劉 13888188 21 26 58 ls root 後 我看到了這三個檔案 amp content ...

通過幫網友解答問題訓練同學們使用awk,sed案例

由此題答案,我們看出,玩運維,技術僅僅是基礎,思想才是上層建築,簡單 易用是運維追求的目標,本文法3,法5堪稱最佳答案。問題 某成都劉劉群內提出這樣的問題,希望同學們幫他解答下。問題如下 成都 劉劉 13888188 21 26 58 ls root 後 我看到了這三個檔案 amp content ...

解答網友問題002

include define n 3 struct student int main void input struct student stu struct student max struct student stu void print struct student stud 問 我是乙個初學...