如果上一行中存在相同的行,则删除一行

如果上一行中存在相同的行,则删除一行

我想从 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

你可以阅读这个成语的解释这里

相关内容