我执行如下命令
unzip -l 文件名.zip
并且我想要在 HTML 页面上很好地显示输出,但是它似乎是选项卡式的,并且列没有对齐。
有人能建议一个好方法让该输出在 HTML 中很好地呈现吗?
答案1
假设你正在使用 Windows,并且是较新版本,你可以用 PowerShell 来做到这一点以下命令从当前目录的文件列表中生成一个 HTML 表并将其保存到输出.html:
powershell "$output = (dir); $output | Out-String | ForEach{ $results += $_.ToString().Split(\"`n\",[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<tr>' + ($_.Split(' ',[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<td>' + $_ + '</td>' }) + '</tr>' } }; '<!DOCTYPE html><html><body><table>' + $results + '</table></body></html>' | Set-Content Output.html"
尝试在 Windows 命令提示符下运行此命令。您应该能够将其粘贴到提示符中。请注意,它将创建或替换名为输出.html在当前目录中。当然,需要更高级的代码才能让所有内容看起来美观并位于您想要的列中。
注意上面代码中的 部分$_.Split(' ')
。此部分决定了从命令输出创建列的分隔符。上面的代码使用空格。如果您确实想使用制表符而不是空格,请使用反引号吨:
$_.Split('`t')
按标签拆分的结果如下:
powershell "$output = (dir); $output | Out-String | ForEach{ $results += $_.ToString().Split(\"`n\",[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<tr>' + ($_.Split('`t',[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<td>' + $_ + '</td>' }) + '</tr>' } }; '<!DOCTYPE html><html><body><table>' + $results + '</table></body></html>' | Set-Content Output.html"
要将此方法与其他命令(除 之外dir
)一起使用,只需替换目录使用另一个命令:
powershell "$output = (unzip -l filename.zip); $output | Out-String | ForEach{ $results += $_.ToString().Split(\"`n\",[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<tr>' + ($_.Split('`t',[System.StringSplitOptions]::RemoveEmptyEntries) | ForEach{ '<td>' + $_ + '</td>' }) + '</tr>' } }; '<!DOCTYPE html><html><body><table>' + $results + '</table></body></html>' | Set-Content Output.html"