shell如何shell删除指定后缀文件包含制定中文的行




为了防止有人想要完成字符串的精确匹配可以在grep中使用-w标志,在整个中使用w 也就是说,例如如果要shell删除指定后缀文件具有数字11的行但保留行数为111:

如果您想一次排除几个确切的模式,也可以使用-f标志 如果“黑名单”是每行中要从“文件”中shell删除指定后缀文件的具有多种模式的文件:


这里-v将只打印伱的模式(这意味着反转匹配)


使用GNU sed的简单方法:


您可以使用sed替换文件中的行。 但是它似乎比使用grep反转第二个文件然后将第二个文件移動到原始文件要慢得多。

无论如何我的机器上的第一个命令需要长3倍。


我用一个包含大约345000行的文件做了一个小基准 在这种情况下,使鼡grep的方式似乎比sed方法快15倍

我曾尝试使用LC_ALL = C和没有使用LC_ALL,但它并没有显着改变计时 搜索字符串(CDGA_00004.pdbqt.gz.tar)位于文件中间的某个位置。


要shell删除指定後缀文件该行并将输出打印到标准输出:

直接修改文件(并创建备份):


第一条命令在位置(-i)编辑文件

第二个命令执行相同的操作,泹通过向文件名添加.bk保存原始文件的副本或备份(.bk可以更改为任何内容)

我要回帖

更多关于 shell删除指定后缀文件 的文章

 

随机推荐