2011年7月25日 星期一

難搞的grep

原來grep的$ (regular expression)只能match 0D(Unix換行符號),而無法match 0D 0A(DOS換行符號)。
解決的方法是,grep 最後面用ctrl+v+enter,就會打出^M的符號。

會發生這個原因也很衰,從BRAS upload config到我的server,用的是OD的換行符號。但從NI網頁抓下來卻變成OD OA的換行符號 (正常人誰會去看hex code長怎樣啊?)

抓這個問題花了我三十分鐘的時間,當然是要記下來。

2011/07/30:
這件事還有後續。後來發現NI網頁開啟後另存新檔的檔案有一些檔案的換行符號是0D 0A,有一些卻是OD。所以就一勞永逸的處理掉:exec("unix2dos file");
直接把所有的換行符號都換成0D 0A (如果本來就是OD OA的多換一次也不會造成影響)。
於是這個問題就輕鬆的解決了。

沒有留言:

張貼留言