Text-Processing
awk:處理錯誤位置的換行符分隔
我有一些看起來像這樣的數據:
abc 123 456 789 def 111 222 333 ghi 999 888 777 666
即記錄由多個換行符分隔但在錯誤的位置。我想要的是這樣得到它:
abc 123 456 789 def 111 222 333 ghi 999 888 777 666
我曾嘗試在 awk 中設置
RS
,\n\n\n
但最終導致記錄被錯誤地截斷;該abc
術語最終成為前一個記錄的最後一個欄位,而不是目前記錄的第一個欄位。我也不確定如何使用
sed
它,因為它是逐行工作的。
嘗試
awk '!NF {next} /[^0-9]/ {printf XRS; XRS = ORS} 1' file2 abc 123 456 789 def 111 222 333 ghi 999 888 777
它刪除空行(我從你的規範中讀到那些真的是空的,沒有空格等),然後檢查是否有任何非數字,指示記錄標題,它列印一個換行符,除了第一個得到一個空字元串。
在每個 Unix 機器上的任何 shell 中使用任何 awk:
$ awk '/[^0-9]/ && NR>1{print ""} NF' file abc 123 456 789 def 111 222 333 ghi 999 888 777 666