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

이 구성 파일에는 작업할 수 있는 파일 형식의 이름 목록이 언급되어 있지 않지만 다음과 같은 이름이 언급된 경우

# 메스는 다음에 적합합니다.당기다 에르스텟 자바

그럼 스틸드라이버님의 답변은 완벽하네요

답변1

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

또는 (확장 정규식이 지원되는 경우) 일부 이스케이프를 피할 수 있습니다

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

관련 정보