echo a b c d |awk 』』
我的理解是應該把輸出顯示為如下的方式
a:b:c:d
dan但執行的結果不是這樣的
a b c d
為什麼啊
echo a b c d|awk 』』
或echo a b c d|awk 』begin 』
或echo a b c d|awk 』』
這個方法我知道
我是想知道為什麼ofs沒起作用
奇怪的是我改動其中乙個欄位的值確能顯示分隔符
echo a b c d |awk 』』
a:3:c:d
原來如此,謝謝
原來如此,是什麼原因啊?
echo a b c d |awk 』』
錯誤就在這裡,$0是列印這條記錄,ofs對他不起作用
echo a b c d|awk 』』 這樣就對了
下面引用由twlogin在 2002/09/28 01:50pm 發表的內容:
奇怪的是我改動其中乙個欄位的值確能顯示分隔符
echo a b c d |awk 』』
...那改動其中乙個欄位的值
如echo a b c d |awk 』』
結果又對了,why?
是不是改動其中乙個欄位的值後,每個欄位的會自動加上ofs
只能說awk對於ofs的改動後,中間沒有提供他所有加工輸出資料的機會,那ofs的改動也失效了.
awk也是個常人寫得程式.總有不周之處啊.
在《sed和awk程式設計篇》中有這樣一句:
如果給字段變數賦乙個新值,那麼awk會自動地使用內部變數ofs重新生成$0
該書中講解了 $0 什麼被重新生成的例子
二,awk分隔符
在前一篇文章中我們略微提到過 分隔符 但是並沒有細說,那麼我們今天就聊聊什麼是分隔符,awk有哪些分隔符,awk的預設分割符是空格,但是,這樣描述並不精確,因為,awk的分隔符還分為兩種,輸入分隔符 和 輸出分隔符 此處我們先將分隔符的概念列出,看不懂沒關係,我們會一一進行舉例,到時自然會明白。輸入...
awk linux 分隔 awk多分隔符
awk的 f引數可以指定新的分隔符,有些時候可能需求指定多個分隔符,比如下面的內容 root n1 netstat an grep estab udp 0 0 192.168.1.120 35570 212.47.249.141 123 established udp 0 0 192.168.1.1...
字段分隔符IFS
ifs internal field seperator 在linux的shell中預設的分隔符,用來把command line分解成word 字段 ifs可以是white space 空白鍵 tab 鍵 enter 回車鍵 中的乙個或幾個。ifs是shell指令碼中的乙個重要概念,在處理文字資料時...