특정 패턴으로 시작하는 줄을 제외한 공백 제거

특정 패턴으로 시작하는 줄을 제외한 공백 제거

동일한 패턴(패턴은 "ORGANISM")으로 시작하는 모든 줄을 제외하고 파일의 모든 공백을 제거하고 싶습니다.

입력하다:

Cat; Dog; Squirrel
ORGANISM Animalus terrus
Sequence: ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT

산출:

Cat;Dog;Squirrel
ORGANISM Animalus terrus
Sequence:ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT

"ORGANISM" 문자로 시작하는 줄을 제외하고 모든 줄에 더 이상 공백이 없습니다.

답변1

sed '/^ORGANISM/!s/ //g' /path/to/input

그러면 모든 줄의 모든 공백이 제거됩니다.아니요로 시작하세요 ORGANISM.

답변2

sed -e '/^ORGANISM/n' -e 's/ //g'  < input > output

n첫 번째 표현식은 다음으로 시작하면 다음 줄로 이동하고, ORGANISM그렇지 않으면 s모든 공백을 빈( g전역) 으로 바꿉니다.

답변3

(?!ORGANISM)이것은 교체를 수행해야 하는지 결정하기 위해 부정 예측을 사용하는 Perl 버전입니다 . -p플래그로 자동 인쇄 가능

$ perl -pe 's/[[:blank:]]//g if /^(?!ORGANISM).*/' input.txt                                                             
Cat;Dog;Squirrel
ORGANISM Animalus terrus
Sequence:ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT

관련 정보