我想寫一個簡單的AWK腳本,它使用空行作爲記錄分隔符。我在我的電腦上覆制了GNU AWK手冊Multiple-Line Records的例子。我下面的代碼複製:AWK記錄分隔符設置爲空行不工作
# addrs.awk --- simple mailing list program
# Records are separated by blank lines.
# Each line is one field.
BEGIN { RS = "" ; FS = "\n" }
{
print "Name is:", $1
print "Address is:", $2
print "City and State are:", $3
print ""
}
輸入是:
Jane Doe
123 Main Street
Anywhere, SE 12345-6789
John Smith
456 Tree-lined Avenue
Smallville, MW 98765-4321
文件是UNIX系統上創建。
需要的輸出是:
Name is: Jane Doe
Address is: 123 Main Street
City and State are: Anywhere, SE 12345-6789
Name is: John Smith
Address is: 456 Tree-lined Avenue
City and State are: Smallville, MW 98765-4321
相反,我得到的結果是與預期不同。我得到的是:
Name is: Jane Doe
Address is: 123 Main Street
City and State are: Anywhere, SE 12345-6789
有沒有人知道我爲什麼得到錯誤的結果? AWK只能找到1條記錄而不是2條,你知道爲什麼嗎?
您的電流輸出看起來是正確的。請用2個樣本輸入記錄更新您的Q,並至少從其中一個記錄中輸出您的要求輸出。另外,如果Windows涉及到創建數據文件,請使用'dos2unix datafile'清理它。祝你好運。 – shellter
試過了,它在OS X上工作時應該是這樣的 –
在我的老山SUSE盒子上工作正常 – JNevill