簡體   English   中英

如何使用awk或sed刪除斷線?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM