我有一個文件格式如下。任何人都可以在列中轉換它? 我已經嘗試過下面的awk命令,但是如果一個客戶有多個主機名,它會創建更多的4列。如何使用shell腳本在行和列中轉換我的文件
awk '/"customer_name":/{if (x)print x;x="";}{x=(!x)?$0:x","$0;}END{print x;}' filename
輸入:
customer_name: "abc"
"HostName": "tm-1"
"LastDayRxBytes": 0
"Status": "offline"
"HostName": "tm-2"
"LastDayRxBytes": 0
"Status": "offline"
"HostName": "tm-3"
"LastDayRxBytes": 0
"Status": "offline"
"HostName": "new-va-threat-01"
"LastDayRxBytes": 0
"Status": "offline"
customer_name: "xyz"
"HostName": "tm-56"
"LastDayRxBytes": 10708747
"Status": "ok"
customer_name: "def"
customer_name: "uvw"
"HostName": "tm-23"
"LastDayRxBytes": 34921829912
"Status": "ok"
customer_name: "new cust"
"HostName": "tm-1-3"
"LastDayRxBytes": 33993187093
"Status": "ok"
customer_name: "a12 d32 ffg"
customer_name: "bcd abc"
customer_name: "mno opq"
customer_name: "abc dhg pvt ltd."
"HostName": "tm-10"
"LastDayRxBytes": 145774401010
"Status": "ok"
"HostName": "tm-ngtm-13"
"LastDayRxBytes": 150159680874
"Status": "ok"
"HostName": "new-ngtm-11"
"LastDayRxBytes": 207392526747
"Status": "ok"
"HostName": "old-ngtm-06"
"LastDayRxBytes": 17708734533
"Status": "ok"
"HostName": "tm-08"
"LastDayRxBytes": 559289251
"Status": "ok"
"HostName": "tm-12"
"LastDayRxBytes": 534145552271
"Status": "ok"
我希望它在柱被打印和行爲:
Column 1 Column 2 Column 3 Column 4
CustName Host Last RX Status
abc tm-1 0 offline
abc tm-2 0 offline
abc tm-3 0 offline
abc new-va-threat-01 0 offline
xyz tm-56 10708747 ok
def
uvw tm-23 34921829912 ok
new_cust tm-1-3 33993187093 ok
a12 d32 ffg
acd abc
mno opq
abc dhg pvt ltd. tm-10 145774401010 ok
abc dhg pvt ltd. tm-ngtm-13 150159680874 ok
abc dhg pvt ltd. new-ngtm-11 207392526747 ok
abc dhg pvt ltd. old-ngtm-06 17708734533 ok
abc dhg pvt ltd. tm-08 559289251 ok
abc dhg pvt ltd. tm-12 534145552271 ok
Column4 \t欄3 \t欄3 \t Column4 客戶名稱\t主機名\t收到\t狀態 ABC \t TM-1 離線 ABC \t TM-2 離線 ABC \t TM-3 離線 abc \t new-va-threat-01 offline xyz \t tm-56 OK DEF \t \t \t UVW \t TM-23 \t \t 34921829912確定 新CUST \t TM-1-3 \t \t 33993187093確定 A12 D32 FFG \t \t \t BCD ABC \t \t \t MNO OPQ \t \t \t abc dhg pvt ltd。 \t tm-10 \t 1.45774E + 11 \t ok abc dhg pvt ltd。 \t tm-ngtm-13 \t 1.5016E + 11 \t ok abc dhg pvt ltd。 \t new-ngtm-11 \t 2.07393E + 11 \t ok abc dhg pvt ltd。 \t old-ngtm-06 ok abc dhg pvt ltd。 \t tm-08 ok abc dhg pvt ltd。 \t tm-12 \t 5.34146E + 11 \t ok – Majeed
該評論中是否有任何非顯而易見的含義?如果是,請編輯您的問題以傳達它。 – Yunnosch
您的任何字符串是否可以包含':'或':'?怎麼樣逃脫'''(例如''''或''''')? –