【发布时间】:2020-02-17 03:04:42
【问题描述】:
我想出了一个基于jq 的单行器,它将一系列以空字符结尾的字符串转换为一系列 JSON 字符串:
xargs -0 dash -c 'for i in "$@"; do printf %s "$i" | jq -Rs . ; done' _dummy_
如果可能的话,我想删除 xargs 和/或 dash。有没有办法只用jq 做同样的事情?
示例用法:
# Create a new dir with some funny-named files
mkdir funny
cd funny
touch $'ABC\nDEF' $' GHI\nJKL ' ' - はじめまして - '
# Use find -print0 to list the files
find -type f -print0 |
# Convert the null-terminated lines to JSON strings
xargs -0 dash -c 'for i in "$@"; do printf %s "$i" | jq -Rs . ; done' _dummy_
输出:
"./ - はじめまして - "
"./ GHI\nJKL "
"./ABC\nDEF"
【问题讨论】: