我有一个以下格式的配置文件
# ra y 1000000 \x2e\x72\x61\xfd
# ost y 500000000 \x21\x42\x44\x4e
# java y 1000000 \xca\xfe\xba\xbe
这就是我想做的:
- 搜索
ra
,ost
,java
- 如果有一个标签之前和之后
ra
,ost
,java
, 去掉#
开头的
我专注于标签因为配置文件还包含其他文本,可能有ra
, ost
,java
提到,但它们都将在它们之前或之后用空格分隔,因为它们会在段落中提到,我不想取消注释这些行。因此,我需要寻找标签
钢铁起子已经回答了。编辑是应要求提及我正在处理的文件的一部分约翰·高飞。
该文件就像
# Scalpel configuration file
...
# Scalpel can read Foremost 0.69 configuration files, but Scalpel
...
# Real Audio Files
# ra y 1000000 \x2e\x72\x61\xfd
# MISCELLANEOUS
# java y 1000000 \xca\xfe\xba\xbe
# Outlook files
# ost y 500000000 \x21\x42\x44\x4e
虽然这个配置文件没有提到它可以工作的文件格式的名称列表,但如果它提到了类似的名称
# 手术刀适用于拉 奥斯特 爪哇
那么steeldriver给出的答案就完美了
答案1
sed '/^#\t\(ra\|ost\|java\)\t/ s/^#//' file
或者(如果支持扩展正则表达式)您可以避免一些转义
sed -E '/^#\t(ra|ost|java)\t/ s/^#//' file