我有一个格式如下的文件:
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的简单方法吗?在此先感谢您的帮助!
答案 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:])