awk 有条件地组合多行

2024-04-18

我想将多行不同长度的值合并到一行(如果它们与 ID 匹配)。

输入示例是:

ID:  Value:
a-1  49
a-2  75
b-1  120
b-2  150
b-3  211
c-1  289
d-1  301
d-2  322

所需的输出示例是:

ID:  Value:
a 49,75
b 120,150,211
c 289
d 301,322

我如何编写 awk 表达式(或 sed 或 grep 等)来检查 ID 是否匹配,然后将所有这些值打印到一行上?我当然可以直接打印 它们分成不同的列,然后将它们组合起来,所以实际上问题只是有条件地打印 ID 是否匹配以及是否开始新行。


在 awk 中,如果您的 ID 聚集在一起:

awk 'NR==1 {print $0}
NR > 1 {sub("-.*", "", $1)}
NR == 2 {prev=$1; printf "%s %s", $1, $2}
NR > 2 && prev == $1 {printf ",%s", $2}
NR > 2 && prev != $1 {prev=$1; printf "\n%s %s", $1, $2}' your_input_file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

awk 有条件地组合多行 的相关文章

  • 使用 Bash 下载并在 wordpress wp-config.php 中插入盐字符串

    如何插入变量 SALT 的内容在特定点 线或串 使用 Bash 脚本从 WordPress 获取像 wp contet php 这样的文件 SALT curl L https api wordpress org secret key 1 1
  • 了解 OFS 在 AWK 中的工作原理

    这是后续我的问题 https stackoverflow com questions 55876705 awk ofs is not working with fs character set了解有关 AWK 中 OFS 的更多信息 我的理
  • 如何保留awk中字段之间的原始空格?

    当处理输入时awk 有时我想编辑其中一个字段 而不触及其他任何内容 考虑一下 ls l awk 1 total 88 rw r r 1 jack jack 8 Jun 19 2013 qunit 1 11 0 css rw r r 1 ja
  • 在未压缩的 PDF 中进行集体内联编辑

    我有一个很大的 PDF 20mb 160mb 未压缩 我需要在其中的文本中进行查找和替换 大约 1000 次 这是我尝试过的 Via SVG 转换为 SVG inkscape 逐行读取 SVG 并在文件中进行替换 转换回 PDF gt 输出
  • 将文件列表传递给 grep

    我有一个文件中的文件列表 该列表很大 并且文件名是非标准的 这意味着 有些文件名包含空格 非 ascii 字符 引号 单引号 所以 通过那个huge不能选择将文件列表作为 grep 参数 因为我不确定我不会超过linux允许的参数长度 我想
  • 如何从 Linux 和 Solaris 上的挂载中提取 NFS 信息?

    我需要使用提取 NFS 挂载信息mount在 Linux RHEL 4 5 和 Solaris Solaris 10 系统上 由于这是 SSH 命令的一部分 因此提取需要在一行中进行 不幸的是 Linux 和 Solaris 在该行的不同部
  • awk 计数频率

    嘿 我想统计 awk 中某一列的数据量 一个示例数据集是 2 5 8 1 3 7 8 5 9我想计算第二列中 5 的出现频率 这就是我尝试过的方法 但没有成功 total 0 for i 1 i lt NF i if i 2 if i 5
  • 从文件中读取行,在第二个文件中 grep ,并为每个 $line 输出一个文件

    我有以下两个文件 sequences txt 158333741 Acaryochloris marina MBIC11017 uid58167 158333741 432 1 432 COG0001 0 158339504 Acaryoc
  • 在 bash 脚本中获取星期几

    我想在变量中包含星期几DOW 所以我使用以下 bash 脚本 DOM date d DOW DOM 7 sed s 0 不幸的是我收到这个错误 bash 09 command not found 变量中的预期结果为 2 9 7 2 DOW
  • sed - 打印仅以元音开头的单词

    如何反转此 sed 以仅打印以元音开头的单词 我试过放进去 在下面的 sed 命令中 但它不起作用 我认为这只会颠倒上面的规则 echo Always take a Big Apple sed r s b AEIOUaeiou w g 你需
  • Perl - 将数组元素句子与变量进行比较

    我使用 grep 返回临时F 文件和 arrayWarning 之间不匹配的数组 my c grep map 1 temporaryF arrayWarning c 里面有很多行 例如 Sun Sep 30 00 05 55 fibre c
  • 使用 grep 仅打印上下文

    Using grep http www computerhope com unix ugrep htm 您可以打印与您的搜索查询匹配的行 添加一个 C选项将打印两行周围的上下文 如下所示 gt grep C 2 lorem some con
  • 如何在Mac终端中找到带有“top”的特定进程

    我试过了top grep skype例如 但它不起作用 我正在尝试按名称查找特定进程 使用这个代替 ps ax grep i skype
  • 使用 sed 和 pstree 显示正在使用的终端类型

    我一直在尝试仅显示用作名称的终端类型 例如 如果我使用 konsole 它会显示 konsole 到目前为止我一直在使用这个命令 pstree A s 输出这个 systemd konsole bash pstree 我有以下内容可以从该行
  • Shell Linux:grep 带有 NULL 字符的精确句子

    我有一个像这样的文件 key 0value n akey 0value n key2 0value n 我必须创建一个以单词作为参数的脚本 我必须返回具有与参数完全相同的键的每一行 I tried grep aF key x0 但 grep
  • PHP 正则表达式修复被黑的 WordPress 网站

    我有一个客户安装了多个 WordPress 但他没有保持最新状态 结果 他被黑了 当我试图找出黑客是如何进入并永久解决问题时 我正在尝试创建一个脚本来快速 自动地修复它们 我找到了这个脚本 它可以满足我的要求 http designpx c
  • 创建带小数秒的时间戳

    awk可以使用 strftime 函数生成时间戳 例如 awk BEGIN print strftime Y m d H M S 2019 03 26 08 50 42 但我需要一个带有小数秒的时间戳 最好是纳秒 gnu date可以用 N
  • bash 用变量值替换字符串中的变量名

    这有点奇怪 我有以下字符串 我有一个名为 REDIRECT 的变量设置为 https working MYDOMAIN blah blah 我需要将 MYDOMAIN 替换为分配给 MYDOMAIN 的变量的实际值 不确定 bash 还是
  • 使用 grep 查找两个字符之间的字符串

    我发现了这一点answer https stackoverflow com a 1454936 2068595用于查找两个字符之间的字符串的正则表达式 就我而言 我想找到之间的每一个模式 and 这是正则表达式 lt 确实 当我尝试它时它有
  • 如何使用 awk 或 sed 将“[1.0 - 4.0]”等字符串替换为数值?

    我有一个 CSV 文件 正在通过一组 awk sed 命令进行管道传输 CSV 文件中的某些行如下所示 10368 Verizon DSL DSL NY NORTHEAST 5 4 1 1 3 0 0 384 0 768 其中第 8 列和第

随机推荐

  • 从BackgroundWorker C# 更改控件的属性

    我正在尝试从目录加载一堆文件 在加载时显示进度条状态以及显示正在处理哪个文件的标签 private void FileWorker DoWork object sender DoWorkEventArgs e for int i 0 i l
  • 从 URL 加载图像

    我正在尝试根据以下教程在我的应用程序中加载一些图像 http www anddev org novice tutorials f8 imageview with loading spinner t49439 html http www an
  • NSIS 滚动许可证欢迎屏幕

    我的安装程序在与滚动许可证插件交互时遇到问题 安装程序在没有插件的情况下也能很好地工作 这就是插件让我包括的内容 include MUI nsh define MUI PAGE CUSTOMFUNCTION SHOW LicenseShow
  • 如何限制循环的迭代次数?

    假设我有一个项目列表 我想迭代其中的前几个 items list range 10 I mean this to represent any kind of iterable limit 5 简单的实现 来自其他语言的 Python 新手可
  • 从 Octave 导出的图中具有透明背景

    我在 Win 10 下使用便携式 Octave 5 1 0 我的意思是写一个具有透明背景的 png 绘图 免责声明 这个问题与下面链接的两个问题类似 我选择了提出当前不同的问题 https meta stackoverflow com qu
  • GCE - HTTP 负载平衡返回错误 502(错误网关) - 仅当通过 C# 发布时

    我们有一个 C 应用程序 可以获取数据并将其发布到我们的网站 在使用 Compute Engine 测试 HTTP 负载平衡时 我们遇到的唯一问题是当 C 应用程序尝试提交数据时返回 502 Bad Gateway HTTP 负载平衡中是否
  • 将名字和姓氏添加到 Django-Registration

    我使用的是默认的Djangoregistration 版本 0 8 在我的项目中 用户只需输入他们的用户名 电子邮件和密码 但是 我希望用户也在注册页面上输入他们的名字和姓氏 我怎样才能轻松做到这一点 您可以做的是覆盖默认的 UserReg
  • numpy reshape 是如何工作的?

    我有一个 numpy 数组中的数据 a np arange 100 a a reshape 20 5 当我打字时 a 10 它返回 array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1
  • 为什么 sscanf() 不将 CSV 文件中的行读入数组?

    我正在尝试将 CSV 文件中的整数读入二维数组 这是我的代码 FILE fp fopen argv 1 r int counter 0 char line 50 while fgets line 50 fp counter int arry
  • msscript.ocx 从哪里安装

    我在我的应用程序中使用 msscript ocx 它是 Windows 的 ActiveX 脚本主机 尽管我希望能够对高度可定制的 XP 嵌入式 XPe 使用相同的功能 1 我想知道在XPe上是否可以选择性安装msscript ocx 2
  • 为什么我的 Android 应用程序(具有 root 权限)无法访问 /dev/input?

    我的应用程序针对已root的Android设备 它具有root权限并且需要访问该目录 dev input 但为什么它会抛出opendir failed Permission denied even dev input已经是chmod to
  • 读取 bash 脚本中 psql 返回的错误

    我需要在从 bash 脚本运行 psql 时检查错误 这是我们如何在脚本中运行的示例 return value psql X POSTGRES CONNECTION STRING f build table sql w b A q t ps
  • jQuery + JSONP + 雅虎查询语言

    我想从外部来源获取实时汇率 所以我找到了这个很棒的网络服务 该服务运行得非常出色 唯一的缺点是它不提供 JSONP 结果 仅提供 XML 因此 在尝试使用 jQuery ajax 使用此 Web 服务时 我们遇到了跨浏览器问题 所以我发现雅
  • 扩展 Mandelbrot 生成 Julia

    在一个项目上工作 要求我使用相同的代码 请注意在同一个文件中生成曼德尔布罗集和朱莉娅集 我有一个工作曼德尔布罗集 但可以看到如何使用相同的代码扩展到朱莉娅集 也许我没有理解之间的区别 谁能详细说明一下 import numpy as np
  • src 和 data-src 属性之间有哪些区别?

    使用两者有何区别和后果 好与坏 data src or src的属性img标签 我可以使用两者获得相同的结果吗 如果是这样 什么时候应该使用它们 属性src and data src没有任何共同点 除了它们都被 HTML5 CR 允许并且它
  • 相机视图上的水印图像偏移

    我创建了一个覆盖图像用作水印 但图像发生了偏移 我已经将代码放在下面 该代码基于 Ivan Karpan 的这篇文章 iPhone 相机视图上的实时水印图像 https stackoverflow com questions 2076456
  • Ruby on Rails:如何将文件呈现为纯文本(没有任何 HTML)

    如何在 Rails 中将文件渲染为纯文本 文本 不渲染任何 HTML 我试过了 render file path to file layout false and render file path to file content type
  • ascx 的视图状态在回发之间丢失

    在我的 ASP NET 应用程序中 我使用 LoadControl 动态加载 ascx 使用以下模式 var ctrl LoadControl path to control ascx ControlType ctrl SomeProper
  • 对象销毁对于加密目的可靠吗?

    作为后续这个问题 https stackoverflow com questions 57515813 我正在想象一个存储敏感数据 例如加密密钥 的类 为了简化事情 假设不涉及继承 struct Credential std array
  • awk 有条件地组合多行

    我想将多行不同长度的值合并到一行 如果它们与 ID 匹配 输入示例是 ID Value a 1 49 a 2 75 b 1 120 b 2 150 b 3 211 c 1 289 d 1 301 d 2 322 所需的输出示例是 ID Va