我有一个看起来会跨越多行的日志文件
var counter = 1;
var limit = 1000;
function addInput(divName) {
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " inputs");
}
else {
var table = document.getElementById("tableChecksheet");
var row = table.insertRow();
var cell1 = row.insertCell(0);
cell1.className = "auto-style3"
var cell2 = row.insertCell(1);
cell1.innerHTML = "<h2>Dimension Type " + (counter + 1);
cell2.innerHTML = "<br><input id='txtdimensiontype " + (counter + 1) + "' type='text' name='myInputs[]' style='width: 500px;'>";
var row = table.insertRow();
var cell1 = row.insertCell(0);
cell1.className = "auto-style3"
var cell2 = row.insertCell(1);
cell1.innerHTML = "<h2>Dimension " + (counter + 1);
cell2.innerHTML = "<br><input id='txtdimension " + (counter + 1) + "' type='text' name='myInputs[]' style='width: 500px;'>";
counter++;
}
}
我的问题是,如果下一行(即第2行)不以时间戳开头,我如何从第1行删除新行。我一直在关注sed,但大多数解决方案只是提供代码,几乎没有解释。
答案 0 :(得分:1)
您可以使用此awk
:
awk '$1 ~ /^([0-9]{2}\/){2}/{if (p) print p; p=$0; next}
p{p=p FS $0} END{print p}' file
01/02/18 19:01:01 some log some log continuation of line 1 log
01/02/18 19:01:02 some log some log
01/02/18 19:01:03 some log some log
工作原理:
$1 ~ /^([0-9]{2}\/){2}
确保第一个字段是日期字段{...}
内,我们打印缓冲区p
如果它非空并移动到下一个记录p{...}
块内,我们不断向缓冲区p
添加行。对于不以日期字段END{...}
区块中,我们打印最后一行。答案 1 :(得分:0)
wold中的另一个问题
awk '/^([0-9]+\/){2}[0-9]+/&&NR>1{printf( "\n")}{printf( "%s ", $0)}' file
答案 2 :(得分:0)
使用gnu sed
sed -E ':A;N;/\n(([0-9 :/]){18})/{P;D;bA};y/\n/ /' infile