我卡住了。說我有4列分隔標籤文件。使用awk替換行尾的空字段
A326931873 2014-10-26 09:55:28.000 N06 D00030131051410
A326931902 2014-10-26 09:56:10.000 N06
並且想用\ N替換行末尾的空字段。結果應該是
A326931873 2014-10-26 09:55:28.000 N06 D00030131051410
A326931902 2014-10-26 09:56:10.000 N06 \N
我已經試過awk -F'\t' 'BEGIN {sub("", "\N", $4); print}' file
,awk -F'\t' 'BEGIN {sub(/^&/, "\N", $4); print}' file
和一致好評,沒有運氣。
更新1:建議我也嘗試過使用多個字段,但是awk -F"\t" 'NF<4 {print}' file
沒有返回任何結果,即所有行都有四個字段。
UPDATE2:cat -vET file
顯示
A326931873^I2014-10-26 09:55:28.000^IN06^ID00030131051410^M$
A326931902^I2014-10-26 09:56:10.000^IN06^I^M$
UPDATE3:刪除回車後cat -vET file
顯示
A326931873^I2014-10-26 09:55:28.000^IN06^ID00030131051410$
A326931902^I2014-10-26 09:56:10.000^IN06^I$
任何建議的解決方案不起作用。
你有一個DOS的fi樂。要使用它,你可以嘗試'dos2unix'。還請檢查這個答案:[我們可以用來將Windows文件轉換爲unix或mac文件的任何命令?](http://stackoverflow.com/a/23255571/1983854)。 – fedorqui
這不是解決方案中的問題,而是您的投入。用前面的鏈接清理它,也許http://stackoverflow.com/a/20601044/1983854 – fedorqui