[英]how remove break line with awk or sed?
我正在嘗試從csv文件中刪除換行符
1 2010-01-08|2010|00360| PAPELETAS DE TRÁNSITO|.000|13.680
2 2010-01-08|2010|00367|30%) DEL ÁREA TOTAL DEL <--here
LOCAL, MÓDULOS, STANS|.000|36.000
3 2010-01-08|2010|00384|EXTERIOR (VÍA PÚBLICA)/DERECHO DE TRAMITACIÓN|.000|6.840
我的csv有6列,以“ |”分隔 並且我想做一行,但是從數據庫導出時,在第2行有一個換行符
awk -F \| '{c+=NF}c<6{ORS=""}c>=6{ORS=RS;c=0}1' file
會假設您的|
分隔的文件在一條記錄中包含6列。
做很多假設,您可能只想:
awk 'NF==6{ print; next} {getline x; $0 = $0 x } 1' FS=\| input
可以簡化為:
awk 'NF < 6 {getline x; $0 = $0 x } 1' FS=\| input
或(如果您想加入兩個以上的連續行)
awk '{while(NF < 6) {getline x; $0 = $0 x }} 1' FS=\| input
這些都是非常脆弱的解決方案。 讀者被警告。
如果“ d”文件中的數據經過gnu sed嘗試,
就行號而言
sed '2{N;s/\n//}' d
就圖案而言
sed -E '/^([0-9][^|]+\|){3,}\S+(\s+[A-Za-z/(.,)]+)+/{N;s/\n//}' d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.