sed 搜索选项卡

sed 搜索选项卡

我有一个以下格式的配置文件

#   ra  y   1000000 \x2e\x72\x61\xfd
#   ost y   500000000   \x21\x42\x44\x4e
#   java    y   1000000 \xca\xfe\xba\xbe

这就是我想做的:

  1. 搜索raostjava
  2. 如果有一个标签之前和之后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

相关内容