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