我在这里问了一个问题,要删除包含与特定模式匹配的字符串的不需要的行:
Remove lines containg string followed by x number of numbers
vol
后跟空格和三个或更多连续数字的任何行:
grep -Ev '\bvol([[:blank:]]+[[:digit:]]+){2}' file > newfile
该命令将用于相当大的csv文件,并由crontab启动。出于这个原因,我想保留此命令正在删除的行的记录,这样我就可以返回检查正在删除的正确数据 - 我想这将是某种包含名称的日志行的日志没有进行最后的削减。如何添加此功能?
答案 0 :(得分:2)
删除grep并改为使用awk:
\<
以上使用GNU awk作为单词分隔符(awk '/\<vol([[:blank:]]+[[:digit:]]+){2}/{print systime(), $0 >> "deleted"; next} 1' file
),并将每个删除的行附加到名为“已删除”的文件中。考虑添加时间戳:
length<-