首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sed将每个匹配添加到自己的行中

Sed将每个匹配添加到自己的行中
EN

Stack Overflow用户
提问于 2014-10-03 20:39:41
回答 2查看 85关注 0票数 1

我有这个

代码语言:javascript
运行
复制
awk -F=":" -v RS="," '$1~/"name"/ {print}' | sed -e 's/^.*"name"[ ]*:[ ]*"//' -e 's/".*//'`

user1 user2 user3 user4 user5

我试图添加一种方法,在它自己的线路上创建每一个匹配,而不是并排。

代码语言:javascript
运行
复制
user1
user2 
user3 
user4 
user5

作为奖励,有没有办法告诉awk和sed跳过"name“的第一场比赛?

这是api的输出。

代码语言:javascript
运行
复制
{
  "name": "users",
  "self": "http://",
  "users": {
    "size": 5,
    "items": [
      {
        "self": "http://",
        "name": "admin",
        "emailAddress": "admin@example.com",
        "avatarUrls": {

        },
        "displayName": "admin",
        "active": true
      },
      {
        "self": "http://",
        "name": "user1",
        "emailAddress": "user1@example.com",
        "avatarUrls": {

        },
        "displayName": "user1",
        "active": true
      },
      {
        "self": "http://",
        "name": "user2",
        "emailAddress": "user2@example.com",
        "avatarUrls": {

        },
        "displayName": "user2",
        "active": true
      },
      {
        "self": "http://",
        "name": "user3",
        "emailAddress": "user3@example.com",
        "avatarUrls": {

        },
        "displayName": "user3",
        "active": true
      }
    ],
    "max-results": 50,
    "start-index": 0,
    "end-index": 3
  },
  "expand": "users"
}
EN

Stack Overflow用户

回答已采纳

发布于 2014-10-03 20:59:10

只使用awk来解释示例json数据:

代码语言:javascript
运行
复制
$ awk -F: -v RS="," '$1~/"name"/ && f {gsub("[ \",]", "", $2); print $2} $1~/"name"/{f=1}' json
admin
edwin
niwde
other

由于name标志f,跳过了第一个匹配的f

awk代码的解释:

  • $1~/"name"/ && f {gsub("[ \",]", "", $2); print $2} 这包括一个条件和一组语句。该条件要求第一个字段与"name"匹配,并且标志f为非零。如果满足这两个条件,则从同一个第二个字段中移除空格、引号和逗号,并打印第二个字段。 在awk中,变量的默认值为零(或空白)。因此,除非我们为f分配一个非零值,否则不会打印任何内容。
  • $1~/"name"/{f=1} 如果第一个字段在"name"上匹配,则标志f设置为1。因此,直到第一个name字段出现之后,f才会被设置为1。因此,名字字段将不会被打印,而是在它之后全部打印出来。
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26186496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档