동일한 패턴(패턴은 "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