前の行に同じ行がある場合、行の削除

前の行に同じ行がある場合、行の削除

UNIXコマンドラインから古い行の既存の行を削除したいと思います。私のファイルには次のデータがあります。

 <xref id="gi_525506931_ref_NP_001266519.1__brain_aromatase"/>
                    <entry ac="IPR002401" desc="Cytochrome P450, E-class, group I" name="Cyt_P450_E_grp-I" type="FAMILY">
                    <entry ac="IPR001128" desc="Cytochrome P450" name="Cyt_P450" type="FAMILY">
                    <entry ac="IPR001128" desc="Cytochrome P450" name="Cyt_P450" type="FAMILY">
                    <entry ac="IPR001128" desc="Cytochrome P450" name="Cyt_P450" type="FAMILY">

したがって、次のようにする必要があります。

 <xref id="gi_525506931_ref_NP_001266519.1__brain_aromatase"/>
                    <entry ac="IPR002401" desc="Cytochrome P450, E-class, group I" name="Cyt_P450_E_grp-I" type="FAMILY">
                    <entry ac="IPR001128" desc="Cytochrome P450" name="Cyt_P450" type="FAMILY">

答え1

同じ行が連続的であることを保証できる場合は、次のものを使用できます。

uniq your_file

そしてcuonglmの答え動作しなくても動作します。

答え2

そしてawk

awk '!a[$0]++' file

このイディオムの説明を読むことができます。ここ

関連情報