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

2024-09-24 22:28:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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来实现这一点?提前感谢您的帮助!你知道吗


Tags: 文件方法outputdata格式shell单词email2
2条回答

下面是一个使用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:])

使用sed

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

相关问题 更多 >