我正在寫一個awk腳本,它將把grep的輸出和很好的格式轉換成HTML表格。分隔符是「:」字符;我遇到的問題是該字符也可以出現在文本中。因此,如果我分別使用$ 1,$ 2和$ 3作爲文件名,行號和註釋,我會在第一個之後丟失任何內容:評論提取沒有循環的多列
有沒有辦法說$ 1,$ 2,然後是$ 3。 .NR沒有顯式循環遍歷列並將它們連接在一起?
這裏的腳本至今:
`
#!/usr/bin/awk
BEGIN {
FS=":"
print "<html><body>"
print "<table>"
print "<tr><td>File name</td><td>Line number</td><td>Comment</td></tr>"
}
{
print "<tr><td>" $1 "</td><td>" $2 "</td><td>" $3 "</td></tr>"
}
END {
print "</table>"
print "</body></html>"
}`
和一些示例輸入:
./mysql-connector-java-5.0.8/src/com/mysql/jdbc/BlobFromLocator.java:177: // TODO: Make fetch size configurable
./mysql-connector-java-5.0.8/src/com/mysql/jdbc/CallableStatement.java:243: // TODO Auto-generated method stub
./mysql-connector-java-5.0.8/src/com/mysql/jdbc/CallableStatement.java:836: // TODO: Do this with less memory allocation
這很聰明。但是你必須在真正的Unix系統或者BSD上,因爲我認爲你只需要它。 'BEGIN {FS =「:」; 「甚至在oawk爲什麼設置OFS? – DigitalRoss 2009-09-28 15:27:49
我一開始嘗試不修改OFS,但列已更改爲註釋字段中的空格。 – ffx 2009-09-28 21:36:02