从文件中删除特定数据

时间:2016-03-10 05:52:12

标签: linux bash

我有包含IP列表的文件。在这些IP中,我想删除10.0.1.x系列的IP。

所以要检查我在命令

之后使用的那些IP
grep -F "10.0.1." IPList.txt

但是如何从IPList.txt中删除这些IP,因为我必须提供此IPList.txt文件作为另一个脚本的输入。

2 个答案:

答案 0 :(得分:2)

一种可能的选择是使用grep -vGNU Grep 2.23 man page部分说明,

-v
--invert-match

    Invert the sense of matching, to select non-matching lines.
    (-v is specified by POSIX.)

类似

grep -v "10.0.1." < IPList.txt > IPList-nolocal.txt

IPList.txt复制到IPList-nolocal.txt,不包括与10.0.1.匹配的所有行

如果你想在运行它时看到输出,你可以使用tee command(链接的维基百科文章开始通常用于分割程序的输出,以便它可以显示和保存在文件中

grep -v "10.0.1." < IPList.txt | tee IPList-nolocal.txt

答案 1 :(得分:2)

使用GNU sed:

sed '/^10\.0\.1\./d' IPList.txt

如果您要“就地”修改文件,请使用sed的选项-i