linux - 获得独特的线条

标签 linux bash awk unique delimiter

我正在 graphViz 中创建图形,并且我需要每个连接仅显示一次,如何使用 Linux 命令转换此输入?

输入

aa -- bb[label=xyz]
ab -- bb[label=yzx]
aa -- bb[label=zxy]
ac -- ab[label=xyz]
bb -- aa[label=xzy]

期望的输出:

aa -- bb[label=xyz]
ab -- bb[label=yzx]
ac -- ab[label=xyz]

所以aa -- bb等于bb -- aa,需要删除。

我尝试了 sort -k1,2 -u -t[ bot,它不能与 [ 分隔符一起使用,并且不知道如何检查“反向”条目( "xx -- yy"= "yy -- xx")

最佳答案

这是使用 awk 的方法:

$ awk -F'[[]| -- ' '!a[$1,$2]++&&!a[$2,$1]' file
aa -- bb[label=xyz]
ab -- bb[label=yzx]
ac -- ab[label=xyz]

关于linux - 获得独特的线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15663654/

相关文章:

bash - 为什么正确的 shell 脚本会给出包装/截断/损坏的错误消息?

linux - 小数值相减(汇编)

c - 创建另一个共享库时链接一个共享库

linux - 是否有可用于跟踪上下文切换的 Linux 系统 API?

regex - 使用grep获取两个特定单词/字符之间的字符串的模式

linux - 使用 awk 左外连接基于多列的两个 csv 文件,同时保持第一个文件观察的顺序

linux - 如何使用 '\t|' 字符串作为分隔符使用 awk 拆分字符串?

java - 不能 ssh 吗?可能是我 Mac 上 bash_profile 的问题

shell - 找出特定字符并相应地执行搜索?

bash - awk 脚本中的 "BEGIN blocks must have an action part"错误