首页 > 解决方案 > 在 Linux 中将行从一个文件复制到另一个文件,不包括注释

问题描述

如何在不打开源文件和目标文件的情况下在 Linux 中将行从一个文件复制到另一个文件,并且在复制行时需要排除注释。

我不想复制第一个文件中的注释并且文件位于不同的位置

标签: linuxsedcopycommentsline

解决方案


假设文件中的注释行包含#在每行的开头,以下sed命令将删除这些行:

$ sed '/^#/d' path/to/input-file > path/to/output-file

如果您的文件还可以包含在 之前带有空格的行#,则以下sed命令将删除以零个或多个空格或制表符(以任何顺序)开头的行,后跟一个井号 ( #) 字符:

$ sed '/^[ \t]*#/d' path/to/input-file > path/to/output-file

如果您的文件还包含包含代码后跟注释的行,则以下sed命令应该有效:

$ sed -e '/^[ \t]*#/d' -e 's/#.*$//' path/to/input-file > path/to/output-file

推荐阅读