regex 更是perl 的精髓之一..
我用了linux 雖然不久, 但是perl 已經成為不可或缺的tool 了
今天在處理一些東西的時候碰到個問題
我想要把一些長這樣的資料
'123'
'abc'
'haha'
把 兩邊的 single quote 脫掉
我一開始下這樣的指令.
perl -ne 'print "$1\n" if /'(.*)'/' list
結果卻出現錯誤, 大概是bash 把裡面的 single quote 誤認了
我又試
perl -ne 'print "$1\n" if /\'(.*)\'/' list
結果還是不行
google 了一下也沒有人特別講到這個事情
不過倒是看到有人用\047 來代表 single quote
後來試一下發現可以用
perl -ne 'print "$1\n" if /\047(.*) \047/' list
這樣就可以了! :D
---------
另外, 我以前都用這樣的command..
perl -ne 'print "$1\n" if /(xxxx)/' list > list.tmp
mv list.tmp list
因為如果直接
perl -ne 'print "$1\n" if /(xxxx)/' list > list
的話會變成空白的
我今天才看到原來可以這樣..
perl -i.bak -ne 'print "$1\n" if /(xxxx)/' list
這樣可以直接把改玩的東西輸入回去
原來的檔案會存成 list.bak
看來我還是對perl 不夠了解 XD
沒有留言:
張貼留言