生成已被grep删除的文件记录,作为主命令的辅助功能

时间:2016-07-01 11:03:10

标签: linux bash grep

我在这里问了一个问题,要删除包含与特定模式匹配的字符串的不需要的行:

Remove lines containg string followed by x number of numbers

anubhava提供了一系列能够完美满足我需求的代码。此代码将删除包含字符串vol后跟空格和三个或更多连续数字的任何行:

grep -Ev '\bvol([[:blank:]]+[[:digit:]]+){2}' file > newfile

该命令将用于相当大的csv文件,并由crontab启动。出于这个原因,我想保留此命令正在删除的行的记录,这样我就可以返回检查正在删除的正确数据 - 我想这将是某种包含名称的日志行的日志没有进行最后的削减。如何添加此功能?

1 个答案:

答案 0 :(得分:2)

删除grep并改为使用awk:

\<

以上使用GNU awk作为单词分隔符(awk '/\<vol([[:blank:]]+[[:digit:]]+){2}/{print systime(), $0 >> "deleted"; next} 1' file ),并将每个删除的行附加到名为“已删除”的文件中。考虑添加时间戳:

length<-