特定のパターンで始まる行を除いてスペースを削除します

特定のパターンで始まる行を除いてスペースを削除します

同じパターン (パターンは「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で始まっている場合は ext 行にジャンプしORGANISM、そうでない場合はsすべてのスペースを何もないものに置き換えます (g局所的に)

答え3

(?!ORGANISM)置換を実行する必要があるかどうかを判断するために否定先読みを使用するPerlバージョンを示します。-pフラグは自動印刷を可能にします

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

関連情報