簡體   English   中英

Sed awk 文本格式

[英]Sed awk text formatting

我想用 awk 或 sed 之類的東西過濾和排序文本文件。 它不需要是單個命令,一個小的 bash 腳本也應該沒問題。

#
home: address01
name: name01
info: info01
number: number01
company: company01
#
name: name02
company: company02
info: info02
home: home02
#
company: company03
home: address03
name: name03
info: info03
info: info032
number: number03
company: company032
#
name: name04
info: info04
company: company04
number: number04
number: number042
info: info042

我只需要姓名、號碼和信息。 總是只有一個名稱,但可以有 0,1 或 2 個數字和信息。 # 是唯一一致且始終在同一個位置的東西。

output 應該是:

name01,number01,,info01,
name02,,,info02,
name03,number03,,info03,info032
name04,number04,number042,info04,info042

到目前為止我嘗試了什么:

awk -v OFS=',' '{split($0,a,": ")} /^name:/{name=a[2]} /^number:/{number=a[2]} /^info:/{info=a[2]; print name,number,info}' > dump.csv

考慮將邏輯更改為在“#”或最后一行之后打印(假設最后一個塊沒有以 # 終止):

awk -v OFS=',' '
{split($0,a,": ")}
/^name:/{name=a[2]}
/^number:/{number=a[2]}
/^info:/{info=a[2]}
/^#/ { print name,number,info}
END { print name,number,info}
' < w.txt  > dump.csv

暫無
暫無

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

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