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

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

同じパターン(パターンは "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

関連情報