我有以下格式的數據輸出。 我從控制檯上的命令獲取此輸出。Perl - 格式化輸出數據
Number: 9
state: Online
Data: W1F-9YN
Device: 41
Number: 10
state: Online
Inquiry Data: W1-9YN
Device: 41
Number: 11
state: Online
Inquiry Data: W1-9YN
Device: N/A
Number: 42
state: Online
Data: WD-W WDZ-04J
但是,現在我想將其更改爲輸出表格格式。 就像如下圖所示
Device number state data
41 10 online WY1-996
42 12 offline WY2-996
. . . .
. . . .
. . . .
我試着用如下的代碼做的,但我不能夠在正確的格式和一段時間在一個單一的列中的所有數據顯示,高達安排。任何人都可以幫我嗎?
open WDLIST, "Command";
while (<WDLIST>) {
if (m/Device\s*:\s*(\d+)/) {
$enDevice = $1;
print "$enDevice";
}
if (m/Number\s*:\s*(\d+)/) {
$umber = $1;
print "$Number";
chomp;
}
if (m/state\s*:\s*(w+)/) {
$State = $1;
print"$State";
}
if (m/Data\s*:\s*(w+)(d+)(\-)(\s)/) {
$Data = $1;
print"$Data";
}
}
謝謝!
這很像http://stackoverflow.com/questions/12606045/converting-form-layout-to-table-csv-layout- in-perl – RobEarl
這個問題似乎只對每個輸入文件有一行數據,對於簡單的數據CSV文件格式化起來要容易得多。 (直到你意識到你的數據可以包含逗號和引號) – pmakholm
一些提示:1.你沒有正確匹配最後一行。確保你的正則表達式匹配你想要捕捉的東西。 2. $ umber - 是一個錯字嗎? 3.您不打印製表符,並且不打印換行符。 – Bitwise