簡體   English   中英

使用SED從“x = a1,y = b1,z = c1”類型的文件中提取標題和數據

[英]use SED to extract header and data from “x=a1, y=b1, z=c1” type of files

數據文件如下所示:

x=a1, y=b1, z=c1
x=a2, y=b2, z=c2
...

我想將其解析為更有用的格式:

x   y   z
a1  b1  c1
a2  b2  c2
...

標題“x,y,z”和數據“a,b,c”不包含“=”或“,”。

運用

 1 s/=*[^=]*[,$]/ /g

給我嗎

 x y z=c1

顯然最后一項與“[,$]”不匹配任何建議?

非常感謝!

[,$]匹配逗號或美元,而不是逗號或行尾。

在第一行執行兩個操作可能最簡單:

sed -e '1{ s/=[^,]*,//g; s/=.*//; }' ...

第一個查找等號和第一個逗號(包括分隔符)之間的所有內容並重復刪除它; 第二個查找最后一個(僅)等號后的所有內容並刪除它。

sed -i 's/[^=]*=\([^,]*\)/\1 /g'

應該能夠將所有數據都以這種格式獲取

a1  b1  c1
a2  b2  c2
... 

之后,您可以插入您選擇的標題

sed -i 1i"header"

如果你想要,你也可以使用Jonathan Leffler的答案中的sed解析文件中的標題。

要將文件解析為CSV,

 s/=[^,]*//g

 s/[^,]*=//g

分別給出標題和數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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