我正在尝试删除单个正则表达式中的空行和无效记录。但它似乎不起作用。在下面的示例中,包含Serverserial:0和ServerName:"“empty的记录是无效记录,
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}
通过使用下面的正则表达式,它只删除无效条目,但不会删除跟踪(空行)
.*(?<=ServerSerial":")0(?=").*|.*(?<=ServerName":")(?=").*
我也试过了,没什么好结果
.*(?<=ServerSerial":")0(?=").*[\r\n]*|.*(?<=ServerName":")(?=").*[\r\n]*
当前输出类似于空白行
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}
但是预期的输出是
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}
发布于 2018-09-20 04:18:46
将此代码附加到第二个正则表达式中:
(?<=[\r\n])[\r\n]|
通过删除前面有另一个新行的换行符来删除空行。
发布于 2018-09-20 05:16:41
将文件转换为unix文件后,可以使用
grep -Ev 'ServerSerial":"0?"|ServerName":"0?"' inputfile
发布于 2018-09-20 18:04:27
您可以通过以下方式忽略这些空行。
使用ReplaceText处理器。
Search: \n\n\s|\n\s
Replace: \n
参考:How to use regex to remove the spaces between two rows?
如果你在其中遇到任何问题,请让我知道。
https://stackoverflow.com/questions/52413136
复制相似问题