我如何使用 awk 打印多个分隔符单词? [关闭]

2023-12-11

我有一个带有正则表达式分隔符的 awk 我需要提取名字和姓氏的单词,但是这个命令不起作用

        awk -v    OFS="\t" -v FS='firstName": "|",[^+]*lastName": "|",   "' '{sum[$1]+=$2;} {print  $1,$2}' sumacomando
"firstName": "gdrgo",   "xxxxx": "John", "xxxxx": "John", "xxxxx": "John", "xxxxx": "John", "xxxxx": "John",   "lastName": "222",dfg
"xxxxx": "John",    "firstName": "beto",   "xxxxx": "John", "xxxxx": "John", "xxxxx": "John",   "lastName": "111","xxxxx": "John",
"xxxxx": "John",    "firstName": "beto",   "xxxxx": "John", "xxxxx": "John", "xxxxx": "John",   "lastName": "111","xxxxx": "John",
"xxxxx": "John",   "xxxxx": "John",    "firstName": "beto2", "xxxxx": "John","lastName": "555", "xxxxx": "John","xxxxx": "John",
"xxxxx": "John",   "xxxxx": "John",    "firstName": "beto2", "xxxxx": "John","lastName": "444", "xxxxx": "John","xxxxx": "John",
"firstName": "gdrgo",   "xxxxx": "John", "xxxxx": "John", "xxxxx": "John", "xxxxx": "John", "xxxxx": "John",   "lastName": "222",dfg
"xxxxx": "John",   "xxxxx": "John",    "firstName": "beto2", "xxxxx": "John","lastName": "444", "xxxxx": "John","xxxxx": "John",

我需要打印

gdrgo,222
beto,111
beto,111
beto2,555
beto2,444
gdrgo,222
beto2,444

请帮我


您的输入是 CSV,因此处理方法是用于 FPAT 的 GNU awk,并且您的输出也是 CSV,因此将 OFS 设置为选项卡是没有意义的。一般来说,当您有任何包含名称->值映射的文件时,处理它的最简单、最可靠的方法是首先创建这些映射的数组(f[]如下),然后您可以使用其名称打印或以其他方式操作您的数据:

$ cat tst.awk
BEGIN {
    FPAT = "([^,]*)|(\"[^\"]+\")"
    OFS = ","
}
{
    delete f
    for (i=1; i<=NF; i++) {
        split($i,t,/[[:space:]":]+/)
        f[t[2]] = t[3]
    }
    print f["firstName"], f["lastName"]
}

$ awk -f tst.awk file
gdrgo,222
beto,111
beto,111
beto2,555
beto2,444
gdrgo,222
beto2,444
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何使用 awk 打印多个分隔符单词? [关闭] 的相关文章

随机推荐

  • 防止 Spring Boot / Jackson 中的原语到字符串转换[重复]

    这个问题在这里已经有答案了 我们编写了一个Springboot Rest Service 它内部使用Jackson对Rest API的Json输入 输出进行序列化 反序列化 对于 API 输入 输出 我们不希望将原语与字符串进行类型转换 我
  • Python“join”函数类似于unix“join”

    我很好奇是否有像unix版本一样的内置python join函数 参见http linux about com library cmd blcmdl join htmhttps www man7 org linux man pages ma
  • 如何使用 Scala XML 返回空 NodeSeq?

    我正在使用不同的函数分段构建 XML 例如以下示例
  • 学说错误:未找到“Doc​​trine\ORM\EntityRepository”类

    我是 Doctrine 的新手 我正在遵循文档中的示例 当我创建 Repository 类 例如 UserRepository php 并尝试扩展 EntityRepository 类时 我收到以下错误消息 致命错误 在第 10 行的 C
  • 直接从浏览器打印,无需打印弹出窗口[重复]

    这个问题在这里已经有答案了 正如主题中所说 我必须为基于 Web 的应用程序创建一个功能 该功能将允许用户直接发送打印而不提示任何对话框 只需使打印 即单击并打印 变得简单 但不适合我 请建议什么是最好的选择以及我应该如何写它 技术 请建议
  • std::remove 不起作用

    我的测试程序的目标是擦除简单字符串向量中的单元格 如下所示 程序失败 分段错误 static void display std vector
  • 如何使用 PuPHPet 制作 Sequel Pro?

    我刚刚使用 Vagrant 和 Puphpet 设置了一个虚拟机 我知道我有 MySQL 因为我可以mysql在命令行中 我刚刚进行了基本安装 我不知道如何设置我的续集专业版才能访问 我在 Sequel Pro 应用程序上使用 标准 选项
  • Nestjs 到 Azure Windows 应用程序服务 - web.config 设置

    从昨天开始 我一直在尝试将 Nestjs api 部署到 azure 但没有成功 起初 我试图将其推送到 Linux 云服务计划 并能够从 vs code 部署它 在 azure 日志中看到该应用程序已成功启动 但它不会从我的端点返回任何数
  • 迭代简短的固定字符串列表[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在 C 中迭代简短的文字字符串列表 其中所有元素都是预先知道的 的最有效 优雅 惯用的方法是什么 可以用向量来完成 for auto color std vector
  • 如何以编程方式为 UIButton 提供光泽外观?

    我想为某些 iPhone UIButtons 添加 3D 或光泽外观 但这样做时不使用 PNG 或可拉伸图像 我有很多不同形状和大小的按钮 其中有很多颜色是动态生成的 因此预渲染图像在我的情况下不可行 您将如何以编程方式在这些按钮上绘制光泽
  • 在 catch 处理程序中打印异常回溯的可靠方法?

    我想在我的 C 程序中启用异常的完整日志记录 我想做的就是在 seh catch handler 中捕获软件 硬件异常 然后打印异常的完整回溯 我主要对异常的起源感兴趣 调用堆栈对我来说就足够了 try difficult task exc
  • 如何使用 UIScrollView 实现 UIPageViewController?

    我拿了照片滚动来自苹果网站的示例 并尝试通过复制代码来实现我自己的专辑 现在UIScrollView不可见 我该如何让它出现 我所做的唯一代码更改是创建UIPageViewController 就我而言 这是一个UIViewControll
  • 退出时保存应用程序数据状态

    我有一个包含 24 个字符串的 NSMutableArray 如果用户接到电话或退出应用程序 我需要保存这些数据 我一直在研究很多例子 但由于某种原因似乎无法确定保存数据的最佳方法 24 个字符串对应 24 个按钮及其状态 单击按钮时 它会
  • 在 Sencha Touch 2 中从商店加载轮播?

    有没有人有一个代码示例 可以从商店 在我的例子中是 JSON 商店 加载 Sencha Touch 2 Carousel 组件 我了解如何加载扩展 DataView 的列表 但 Carousel 似乎是一个更难解决的问题 因为它不扩展 Da
  • C# 中 AppDomain 的使用

    C 中 AppDomains 最重要的用途是什么 The 最重要的一个使用的是你的代码必须有一个 即您用 C 编写的所有内容都在AppDomain 这非常重要 p 如果你的意思是额外的应用程序域 当使用插件和其他不受信任的代码时 它允许您隔
  • 是否可以将 html get 请求从 create-react-app 代理到 /graphql ?

    我有一个 create react app 应用程序 在其中通过添加以下内容来启用代理 proxy http localhost 3001 到我的 package json 这对于对 graphql 的 API 请求效果很好 但是当 Web
  • CodeIgniter 未加载页面

    我有一个使用 codeigniter 开发的 Web 应用程序 它在我以前的服务器中运行良好 现在我更改了我的服务器 当我尝试运行该 Web 应用程序时 除了空白屏幕之外什么也没有 当我尝试打开现有链接时http mydomain com
  • 是否有用于创建茎叶图的 pandas 函数

    有没有相当于R的pandasstem 用于为数字创建茎叶图的函数Series 我可以轻松编写一些代码 但想知道我是否错过了精美手册中的某些内容 输出示例 16 070355555588 18 000022233333335577777777
  • java 将字符串月份转换为整数

    如何将月份字符串转换为整数 在单击方法中 我想显示所选的日期 但如果该日期有事件 它应该显示有关该事件的更多信息 检查假期事件的方法需要整数值 这是代码 UPDATED Override public void onClick View v
  • 我如何使用 awk 打印多个分隔符单词? [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我有一个带有正则表达式分隔符的 awk 我需要提取名字和姓氏的单词 但是这个命令不起作用 awk v OFS t v FS firstName lastName sum 1 2 print