AWK中的OFS的問題

2022-01-23 11:58:23 字數 890 閱讀 1751

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 什麼被重新生成的例子

注意觀察:echo "a:b:c" | awk 'begin'這樣也是可以的。

awk 不報錯的問題

awk 和 grep 的退出狀態不同 awk 不報錯 linux 判斷乙個變數是否為空值 寫了乙個shell指令碼,把本來用grep的部分改用了awk,發現原來的報錯部分不能用了。比如這個用grep的 檔案中有的單詞才輸出 word is in the file.bin bash set euo p...

關於awk的逗號問題

對於awk逗號的問題,我昨天看的一本書有提過 linux就是這個範兒 挺好的書,大家可以看看 前期準備工作 i b.txt文字內容 ii 逗號表示式形式 字串s1,字串s2 iii n1 s1所在行 n2 s2所在行 注意 無論什麼情況,都是優先匹配s1!防色盲系列 非常符合人類從左到右看東西的習慣...

awk中FS的指定

awk之fs的指定 file fan1 11h ok 160.96 11139 rpm fan2 12h ok 160.96 rpm fan3 13h ok 160.96 10763 rpm fan4 14h ok 160.96 10998 rpm fan5 15h ok 160.96 11515 ...