原始的硬幹學得比想像中多很多

回想當初在學騎腳踏車是沒有說明書的,就是在路上直接騎阿騎,當可以平穩的騎上一百公尺不間斷,其實途中也學會了在十字路口減速觀看車況,也學會了避開地上的坑洞。

在八月十五號最後一題回家作業是要“修改”資料夾裡面所有有“關鍵字”檔案裡的關鍵字並進行“備份”,起初我想就是簡單的第三題題目延伸,因為第三題是尋找資料夾裡有關鍵字的檔案,這點用grep -lir "keyword" *就可以輕鬆辦到,但沒有想到竟然是開啟了一段漫長的土法煉鋼之旅,就來分享幾個我比較印相深刻的重點吧。

一開始一如往常在我的書桌掀開了筆電,參考了第三題的題目後馬上聯想到當初卡很久的|用法,是否用第三題答案的grep 後面接 | sed -i.bac 's/oldword/newword/' * 就可以得到答案,但沒想到顯示了 grep: seduv1ThC: Permission denied ,後面的sed還只執行了對所有檔案備份,關鍵字也沒有修改掉,最後就摸摸鼻子把資料夾刪除在clone老師的教材一次。

自己再試了幾次之後開始去網路上找每個指令用法的資料,以我的邏輯來想一定是要用指令把需要修改的檔案抓出來再叫sed去改,所以我把上課有學到的指令find,grep,cat等擁有收尋或閱讀的指令用法都找了一遍,當然主角sed也不放過,就這樣邊試邊查~邊查邊試(偶爾去陽台抽根煙放空一下XD)之下慢慢的越來越會使用這些指令,甚至還挖掘出其他指令。

在不斷的錯誤當中我發現每個檢測的動作都很重要,每次不論是測試一個新指令或是重新clone老師的教材我的ls和grep去抓檔案的關鍵字有沒有改掉都沒有省過,雖然我努力培養自己解決和自學的能力,但是也是不能浪費太多時間硬ㄍㄧㄥ太久啊!所以我各別對老師和老友Nic投出求救訊號XD。

他們兩個人不約而同地讓我學到下關鍵字的重要,老師是直接下sed replace multiple files去網站收尋,而Nic聽完我的題目之後簡單地說我就是要做“收尋”並且“修改”這兩件事情,他們提供的網站資料真的比我在網路上直接打一串『sed修改並備份檔案』這種超陽春的關鍵字收尋到的資料準確多了XD。

隨著每次都clone真的很麻煩,我乾脆就在本機自己創一個資料夾和幾個簡單的檔案做研究,後來老師又有提供 git add .git checkout 的方法,雖然我不太清楚這些指令是發生了什麼事情和代表什麼,上網查感覺checkout好像也不是專門拿來復原的指令,但沒關係至少我是用的蠻開心也頗實用的XD,總之有了這個方法我的實驗速度又變更快了,花了數把個小時grep等等的指令我真的打了不下幾百次啊!

最後雖然還是沒有做出答案來,但其實中間的收穫也是蠻多的,莫名其妙學了一些零零散散的東西,當然也有很實用的觀念,在我洗澡的時候想想我在做這題的當中真的很像是在學騎腳踏車,Just do it這個學習模式真的可以很快的學習這個領域的很多事情,但是挫折感之大要怎麼調適也是一門學問啦!

comments powered by Disqus