![특정 패턴으로 시작하는 줄을 제외한 공백 제거](https://linux55.com/image/112639/%ED%8A%B9%EC%A0%95%20%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EC%A4%84%EC%9D%84%20%EC%A0%9C%EC%99%B8%ED%95%9C%20%EA%B3%B5%EB%B0%B1%20%EC%A0%9C%EA%B1%B0.png)
동일한 패턴(패턴은 "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