小编Age*_*e87的帖子

在保持顺序的同时删除相邻的重复行

我有一个文件,其中一列的名称每列重复多次。我想将每个重复压缩为一个,同时保留与其他同名重复不相邻的任何其他同名重复。

例如,我想将左侧转到右侧:

Golgb1    Golgb1    
Golgb1    Akna
Golgb1    Spata20
Golgb1    Golgb1
Golgb1    Akna
Akna
Akna
Akna
Spata20
Spata20
Spata20
Golgb1
Golgb1
Golgb1
Akna
Akna
Akna
Run Code Online (Sandbox Code Playgroud)

这是我一直在使用的:perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt 但是,这种方法只保留了左边的一个代表(即不重复 Golb1 和 Akna)。

有没有办法为每个块保留唯一名称,同时保留在多个非相邻块中重复的名称?

sed awk sort uniq

14
推荐指数
3
解决办法
3207
查看次数

根据三列中的 2 列的信息保留唯一行

假设你有一个这样的文件:

NW_006521251.1  428 84134
NW_006521251.1  511 84135
NW_006521038.1  202 84155
NW_006521038.1  1743 84153
NW_006521038.1  1743 84154
NW_006520495.1  198 84159
NW_006520086.1  473 84178
NW_006520086.1  511 84180
Run Code Online (Sandbox Code Playgroud)

我想保留基于第 1 列和第 2 列的唯一行(即不仅仅是第二列,因为这个数字可能会在第一列的不同标签下重复)。

这样我就把它作为输出(NW_006521038.1 1743从列表中删除了第二个重复):

    NW_006521251.1  428 84134
    NW_006521251.1  511 84135
    NW_006521038.1  202 84155
    NW_006521038.1  1743 84153
    NW_006520495.1  198 84159
    NW_006520086.1  473 84178
    NW_006520086.1  511 84180
Run Code Online (Sandbox Code Playgroud)

有没有办法用 awk 做到这一点?使用uniq file不起作用。

awk uniq

8
推荐指数
2
解决办法
5603
查看次数

重新排列列的顺序,以便特定列获得相同的字符串

我希望第 2 列包含字符串 Piebald,其他字符串的顺序无关紧要。我有:

HR0024  Black pastel    Piebald
HR0028  Piebald
MC0023  Piebald
MC0039  Fire    Piebald
MC0075  Piebald VPI Axanthic
MC0082  Pastel  Piebald
MC0120  Piebald Yellowbelly     Het-Lavender
MC0124  Super-Pastel    Piebald Het-Clown
MC0126  Fire    Pastel  Piebald
MC0144  Piebald Vanilla
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

HR0024 Piebald pastel Black
HR0028 Piebald
MC0023 Piebald
MC0039 Piebald Fire
MC0075 Piebald VPI Axanthic
MC0082 Piebald Pastel
MC0120 Piebald Yellowbelly Het-Lavender
MC0124 Piebald Super-Pastel Het-Clown
MC0126 Piebald Pastel Fire
MC0144 Piebald Vanilla
Run Code Online (Sandbox Code Playgroud)

某些行将在不同的列(2、3 或 4)上具有目标字符串。我不认为cut -f这里的工作,我认为awk或sed …

sed awk text-processing

2
推荐指数
1
解决办法
82
查看次数

使用 awk 切换最后两个字段

我正在寻找一种方法来切换制表符分隔文件的最后两个字段。字段的数量因行而异,因此我无法指定字段编号。

我在网上能找到的大部分内容都是针对特定领域的脚本。例如用 awk 交换两列

谢谢!

awk text-processing

0
推荐指数
1
解决办法
358
查看次数

标签 统计

awk ×4

sed ×2

text-processing ×2

uniq ×2

sort ×1