cht電腦資訊Language
adm Find login register

script 一行文

本人已不在此站活動

joined: 2007-09-19
posted: 4946
promoted: 325
bookmarked: 206
歸隱山林
1subject: script 一行文Promote 0 Bookmark 12009-03-20quote  

script 語言的一個很好用的地方是「一行文」,通常是用於字串處理。sed, awk, perl , python, ruby 都有一行文,其中威力最大的應該就是 perl,但有時候 awk 也很好用。以下整理一些方便好用的一行文「句型」,請大家接龍。

全文大寫轉小寫:

perl -pi -e 'tr/A-Z/a-z/' your.file

取得所 match 的 pattern 的次一行的前兩個欄位內容:

awk '/pattern/ {getline; print $1, $2}'  your.file

將 Un*x 系統中的使用者 login name 依序列出:

awk -F: '{print $1|"sort"}' /etc/passwd

列出某檔案的總行數:

awk '{n++} END{print n}' your.file

請接龍……

 

ps. 補充:

Perl 的一行文:

Awk 的一行文:

Ruby 的一行文:

Python 的一行文:

不過,一行文的 script,我個人會比較建議 awk/perl。


edited: 3
本人已不在此站活動

joined: 2007-09-19
posted: 4946
promoted: 325
bookmarked: 206
歸隱山林
2subject: Vim script 的一行文Promote 0 Bookmark 02009-03-20quote  

有在用 Vim 的都知道 Vim script 也是滿強大的,但是要用在一行文也可以嗎? → 勉強可以啦!

vim --noplugin -esn -c %s/ABC/abc/g -c wq! your.file

將 your.file 全文的「ABC」替換成「abc」。不過,我比較懷疑有人會常常用 vim 的一行文 script。:p

 

ps. vim script 一行文的好處是,locale 會幫你自動判斷並處理好。例如 Big5 環境的「許功蓋」問題,在 vim 會自動處理好。


edited: 1

cht電腦資訊Language
adm Find login register
views:7607