[英]How to use regex using awk
我有一个文件,比如test.txt ,它看起来像一个 json,它包含一行数据:
{"a":"b"},{"c":"d, e, f"},{..} and so on
我需要将每对大括号中的所有数据保存在不同文件中的不同行中。
例如: result.txt有
"a":"b"
"c":"d, e, f"
我在 bash 脚本中使用了 awk 和 regex
awk '/\{(.*?)\}/' test.txt > result.txt
但它不是突然出现单个大括号,而是按原样打印确切的测试文件。
任何人都可以说发生了什么问题吗?
echo '{"a":"b"},{"c":"d e f"},{..}' |awk -v RS="{|}" '{gsub(/,/,"")} /./{print $0}'
"a":"b"
"c":"d e f"
..
注意:使用jq
类的json
编辑工具来处理 json 文件是个好主意。
或者,您可以使用带有环视的grep
来仅捕获大括号之间的值:
grep -oP '(?<={).*?(?=})' test.txt > result.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.