linux - 获取 2 列并通过分组对数据重新排序的最佳方法

标签 linux bash

我运行了一个查询,数据输出如下:

seta set1
setb set2
setb set3
setc set4
setd set5
setd set6
setd set7

我最终需要它看起来像这样:

seta set1
setb set2
     set3
setc set4
setd set5
     set6
     set7

我猜有点像一棵树。由于我的工作性质,我无法给出更详细的示例。

最佳答案

您可以使用awk:

awk 'BEGIN{fmt="%-10s%s\n"}
     $1==last{printf fmt," ",$2; next }
     {printf fmt,$1,$2; last=$1}' file
seta      set1
setb      set2
          set3
setc      set4
setd      set5
          set6
          set7

关于linux - 获取 2 列并通过分组对数据重新排序的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51369883/

相关文章:

mysql - 连接远程mysql服务器失败

linux - 在 Linux 上获取 Intel 2017 编译器

正则表达式模式替换

bash - 无法更改Docker容器中的目录?

bash - 如何同时运行多个 bash 脚本?

linux - Gnuplot 创建空的 eps 文件

linux - 计算不规则间隔的平均值而不考虑shell脚本中的缺失值?

python - 即使我处理了它的异常,我的子进程也会无声地崩溃,没有任何错误消息

java - 使用 java "no such file or directory"运行 groovy 编译类的 Bash 错误

python - 在 linux 中意外失败的命令