sed 検索タブ

sed 検索タブ

次の形式の構成ファイルがあります

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

これが私がしたいことです:

  1. 探すra, ost,java
  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

この構成ファイルには、使用できるファイル形式の名前のリストは記載されていませんが、次の名前が記載されている場合

#メスは以下に適しています。引く エルステッド Java

だからSteelDriverの答えは完璧です。

答え1

sed '/^#\t\(ra\|ost\|java\)\t/ s/^#//' file

または(拡張正規表現がサポートされている場合)、いくつかのエスケープを避けることができます

sed -E '/^#\t(ra|ost|java)\t/ s/^#//' file

関連情報