MST

星途 面试题库

面试题:Bash文本正则表达式在复杂数据处理中的应用

有一个包含JSON数据的文本文件`data.json`,其中数据结构较为复杂,可能有多级嵌套。假设文件中的JSON数据格式是合法的,但有一些不规范的空格和换行。现在要求在Bash脚本中,通过正则表达式提取出所有键为`specific_key`的值(可能存在多个),无论该键在JSON数据中的嵌套深度如何,并将这些值以特定格式(例如每行一个值)输出到`output.txt`文件中。你可以使用常见的Bash工具辅助实现,编写此Bash脚本。
48.7万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 使用jq工具提取specific_key的值并输出到output.txt
jq -r '.. | objects | select(has("specific_key")) | .specific_key' data.json > output.txt

说明:

  1. jq是一个专门处理JSON数据的工具。
  2. ..表示递归遍历整个JSON数据结构。
  3. objects筛选出对象。
  4. select(has("specific_key"))进一步筛选出包含specific_key键的对象。
  5. .specific_key提取出specific_key对应的值。
  6. -r选项表示以原始字符串输出,避免额外的引号。
  7. 最后将结果重定向到output.txt文件。

如果系统未安装jq,可以通过包管理器安装,如在Ubuntu上使用sudo apt install jq ,在CentOS上使用sudo yum install jq