Shell和/或Python:如何删除与第一行一起注释掉的行?

时间:2017-03-14 18:44:42

标签: python shell sed

我有一个格式如下的文件:

output data 
#comment1
#note3
#message5
#email2
1   5   7
10  4   1
2   6   1

我想删除第一行(包含单词输出)和注释掉的所有行。最终文件应该如下所示:

1   5   7
10  4   1
2   6   1

有使用shell和/或python的简单方法吗?在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

使用sed

sed  '1d;/^[[:space:]]*#/d' file
  • 1d - >删除第一行
  • /^[[:space:]]*#/d - >删除所有以#开头的行,可选地以空格
  • 开头

答案 1 :(得分:0)

这是使用Python的解决方案。我不确定您是否要保存内容。如果这样做,只需将结果字符串写回文件即可。

首先打开文件并阅读其内容:

In [8]: with open("file", "r") as f:
   ...:     contents = f.read()
   ...:     

然后按换行符拆分行,并删除所有以注释开头的行:

In [11]: mod_contents = [row for row in contents.split('\n') if not row.startswith("#")]

然后加入结果行:

In [14]: "\n".join(mod_contents[1:])