当前位置: 首页 > wzjs >正文

网站设计苏州建筑设计公司有哪些部门

网站设计苏州,建筑设计公司有哪些部门,花生壳 wordpress,游戏网站域名背景:通过‘登录名‘ 获取该对象的其他个人信息如名字。 环境准备:麒麟操作系统V10 jq安装包 jq安装包获取方式:yum install jq 或 使用附件中的rpm 或 git自行下载 https://github.com/stedolan/jq/releases/download/ 实现过程介绍&am…

背景:通过‘登录名‘ 获取该对象的其他个人信息如名字。

环境准备:麒麟操作系统V10 + jq安装包

        jq安装包获取方式:yum install jq  或 使用附件中的rpm 或 git自行下载

https://github.com/stedolan/jq/releases/download/

实现过程介绍:

        (1)姓名文件(a.txt)包含登录名,以逗号为分割。

       (2)json文件(ryxx.json)包含登录名(即a文件的信息)、中文姓名、年龄等相关信息。

        (3)将a文件中的人员信息获取其对应的真实姓名

完整脚本1:

#!/bin/bash
logins=$(tr ',' '\n' < /data/jqtest/a.txt | xargs -n1)   

for dlm in $logins;do

        name=$(jq -r --arg uid "$dlm" ' .[] | select ( .loginId == $uid ) | .name // "null" ' /data/jqtest/ryxx.json )

        if [ -n "$name" ];then
                echo "$dlm $name"
        fi
done

完整脚本2【改进登录名存在空格和重复登录名问题】:

#!/bin/bash
file_a="/data/jqtest/a.txt"
file_json="/data/jqtest/ryxx.json"
mapfile -t logins < <(tr ',' '\n' < "$file_a")

for dlm in "${logins[@]}"; do
    dlm_display="${dlm:-null}"  # 空值替换为 null
    name=$( jq -r --arg uid "$dlm"  ' ([.[] | select(.loginId == $uid) | .name] | first) // "null" ' "$file_json" )
    echo "$dlm_display $name"
done

各代码解释:
logins=$(tr ',' '\n' < /data/jqtest/a.txt | xargs -n1)      

#将a文件的,替换为换行 xargs将换行分隔的每一行内容作为单独的参数传递给后续命令

#for循环读取logins存储的每行数据

for dlm in $logins;do

#此处存在问题,a文件如存在空格会被错误分割,则可以以数组方式进行存储

【 用法 mapfile -t  数组名 < <(输入命令)

mapfile -t logins < <(tr ',' '\n' < /data/jqtest/a.txt)
for dlm in "${logins[@]}"; do

# -z用于检查字符串是否为空,如果字符串长度为空,那么返回真。

# −n是检查字符串是否非空,如果字符串长度不为空,那么返回真。

jq -r --arg uid "$dlm"  ' ([.[] | select(.loginId == $uid) | .name] | first) // "null" ' "$file_json"

#jq命令将文件中的参数传入jq命令脚本中,通过.[] 将数组展开,将对象传递给select进行判断,然后取其的name,如果name为空,通过//返回空

 -r:输出原始字符串(去除 JSON 引号)

--arg: 动态传参,用于将外部变量传递给 jq 脚本。

【用法:jq --arg <变量名> <值> '<jq脚本>' 】如将 dlm 传给uid变量,通过jq脚本 判断json文件中.loginId 字段等于变量uid。

.[] 的作用:展开数组元素,将 JSON 数组中的每个元素逐个提取出来,形成数据流。执行 jq '.[]' 后 如下:

| first:first 是一个过滤器,用于 从输入流或数组中提取第一个元素。它的作用是提前终止处理,只保留第一个匹配的结果,常用于确保输出唯一性

// null:如果name字段为空或false,则替换为null 。

http://www.dtcms.com/wzjs/572205.html

相关文章:

  • 企腾做的网站怎么样软件开发公司照片
  • 随州网站seo多少钱前端做网站框架
  • 无锡做网站中企动力自己创建一个网站需要多少钱
  • 如何建立新的企业网站上海百度网站建设
  • 开源手机网站cmshtml菜鸟入门
  • 用模板做的网站权重高吗域名注册网
  • 常见网站颜色搭配太原手机模板建站
  • 素材百度seo教程网
  • 企业网站推广外包seo查询优化方法
  • 网站建设 慕课建立什么本地网站赚钱
  • sql如何建设网站数据库沧州手机端网络推广
  • 网站建设教程速成餐饮网站建设方案
  • 黄山建设网站wordpress onepress
  • 网站创建服务企业网站建设高端品牌
  • 视频教学网站cms网站建设设置分享功能
  • wordpress 文章输出深圳网站优化咨询
  • 中天建设南京公司南宁seo优化公司排名
  • 做泌尿科网站价格中国最好室内设计公司排名榜
  • 电商怎么做新手入门怎么开店廊坊seo快速排名
  • 运动品牌网站开发题目来源自建app平台
  • 做阀门销售在哪个网站上做好东莞58同城二手车
  • 邦策网站建设平台哪些网站是用php开发的
  • 可信的大连网站建设wordpress视频播放卡
  • 台州专业网站建设方案工商注册需要准备什么材料
  • 网站制作的书籍设计家官网室内设计
  • 福州做网站的江门东莞网站建设
  • 建网站卖产品网站首页菜单栏
  • 经纪人做网站技巧仿牌网站流量
  • 网站建设中单页源码北京海淀建设银行网点查询
  • 六安杂谈优化软件是什么意思