使用sed

使用sed

繰り返し新しい細胞株を検索したいテキストファイルがあります。

New Cell
New Cell
3250,36, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,16.3, 0.0,16.4,20.1,21.8,23.3,25.2,26.4,27.4,26.9,26.4, 0.0, 0.0, 0.0, 0.0, 0.0,
3251,36, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,18.3,23.5,25.3,25.4,27.5,26.0,28.6,28.7,31.8,33.2,34.5,35.0,36.4,38.9,37.9,38.9,38.2,41.3, 0.0, 0.0, 0.0, 0.0, 0.0,
3251,37, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,19.1,21.9,18.0,22.7,21.2,25.3,26.4,29.8,30.3,30.9,31.4,32.3,32.4,31.2,31.3,30.0,27.6,28.1,28.4, 0.0, 0.0, 0.0, 0.0, 0.0,
3252,36, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,18.4,17.1,20.5,22.9,24.8,21.5,24.9,23.7,26.6,27.2,28.3,27.9,28.4,28.5,30.0,31.0,30.6,31.2,31.6,30.3, 0.0, 0.0, 0.0, 0.0, 0.0,
New Cell

元の行を維持しながら重複行を削除する必要があります。私の出力は次のようになります

New Cell
3250,36, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,16.3, 0.0,16.4,20.1,21.8,23.3,25.2,26.4,27.4,26.9,26.4, 0.0, 0.0, 0.0, 0.0, 0.0,
3251,36, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,18.3,23.5,25.3,25.4,27.5,26.0,28.6,28.7,31.8,33.2,34.5,35.0,36.4,38.9,37.9,38.9,38.2,41.3, 0.0, 0.0, 0.0, 0.0, 0.0,
3251,37, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,19.1,21.9,18.0,22.7,21.2,25.3,26.4,29.8,30.3,30.9,31.4,32.3,32.4,31.2,31.3,30.0,27.6,28.1,28.4, 0.0, 0.0, 0.0, 0.0, 0.0,
3252,36, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,18.4,17.1,20.5,22.9,24.8,21.5,24.9,23.7,26.6,27.2,28.3,27.9,28.4,28.5,30.0,31.0,30.6,31.2,31.6,30.3, 0.0, 0.0, 0.0, 0.0, 0.0,
New Cell

答え1

コマンドが必要ですuniq。これがまさにあなたに必要なものです。助けを得るために入力してくださいman uniq

uniq «input-file» «output-file»

それは行わなければなりません。しかし、これは時々いくつかの数字が混乱することがあります。

使用sed

sed を使用すると、パターンが一致した場合に重複項目を削除すると言うことができます。

sed -r -e '$!N; /^(«test to remove duplicates of»)\n\1$/!P; D'

説明する:

  • 拡張正規表現モードで sed を実行すると、式は-r次のようになります。-e
  • 一重引用符は、'シェルにそれを解釈せず、単に(sedに)渡すように指示します。
  • $!Nファイルの最後の行でない場合は、パターンスペースに追加されます。
  • 「;」はsedのコマンド区切り文字です。
  • /^(«test to remove duplicates of»)\n\1$/
    • /regex/何を検索するか教えてください。
    • ^によって。 。スタート
    • (something)それを探して覚えているものがあります。
    • \n改行文字。
    • \1最初に覚えてください。
    • $終わり
    • !否定的な検索。
    • P検索結果が一致した場合は印刷してください。
    • D改行まで削除して繰り返します。

関連情報