【问题标题】:Display the result in group分组显示结果
【发布时间】:2013-05-28 00:34:00
【问题描述】:

我只是需要帮助,想知道我想要的是否可行。这是我的文件 看起来像

第 1 列 |第 2 栏 |第 3 列 ------------------------------------------ A=狗| B=354 | C=343 A=猫 | B=435 |乙=334 C=324 | A=牛| A=猪

有时,我需要过滤特定字段上的类似模式并将其显示在 我的屏幕。示例

grep -Po 'A=(\w+)' test.txt

那我会得到

A=狗 A=猫 A=鸟 A=牛 A=猪

但是,我想问的是是否可以显示另一列并显示 它在第一列旁边,这是我的示例以使其清楚

A=狗 B=354 A=猫 B=435 A=鸟 B=334 A=牛 A=猪

或者有时,我想用各自的组显示 3 列。这是 单独使用“Grep”可行吗?

【问题讨论】:

  • 没有。 grep 的工作是查找内容,而不是在屏幕上制作漂亮的图表。
  • bird 来自哪里?另外,如果A=... 在第一列,你的意思是下一列/如果A=... 在第二行或第三行,则没有?

标签: linux grep


【解决方案1】:

只想分享我在搜索了几个小时后发现没有简单的解决方案:

$ grep -Po 'A=(\w+)' test.txt > a.txt
$ grep -Po 'B=(\d+)' test.txt > b.txt
$ pr -mtS a.txt b.txt

就是这样:)

您也可以将其保存为 .csv

$ pr -mts: a.txt b.txt > combine.csv
*注意:冒号“:”是你的分隔符。

【讨论】:

  • 请注意,这将多次扫描文件。如果您想一次性完成,请查看sed,或使用 Perl 等脚本语言编写实用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-21
  • 2017-10-09
  • 2015-01-07
  • 1970-01-01
相关资源
最近更新 更多