我正在向Redis注入一个csv文件。
如果我在终端上运行脚本,我会得到一个JSON格式,但我不知道如何插入到Redis中。我尝试在开始时使用SET
,在结束时使用| redis-cli --pipe
。
它在终端上工作
awk -F, ' BEGIN { print "[" ; } { print " {\n" " \"typeDocument\" : \"" $1 "\",\n" " \"numberDocument\" : \"" $2 "\",\n" " \"phone\" : \"" $3 "\",\n" " \"state\" : \"" $4 "\"\n" " }" } END { print "]" } ' data.csv #FUNCIONA
这行不通
awk -F, ' BEGIN { print "SET" "[ ; {\n" " \"typeDocument\" : \"" $1 "\",\n" " \"numberDocument\" : \"" $2 "\",\n" " \"phone\" : \"" $3 "\",\n" " \"state\" : \"" $4 "\"\n" " }" } END { print "]" } ' data.csv | redis-cli --pipe #NOFUNCIONA
请帮帮我
我希望在Redis中插入csv文件中的数据时,字段将以JSON格式正确显示。
1条答案
按热度按时间iq3niunx1#
命令的输出包含换行符(
\n
)字符,因为您自己使用它,并且使用多个print
。如果SET的值包含换行符,则必须遵守String quoting and escaping,这给出了以下示例观察
"
定界值,并且有两个字符:黑色斜杠和字母n,而不是单个换行符。您还需要以相同的方式转义"
,以防止它们被视为分隔符。考虑一下,如果你说有下面的JSON文件则应导致以下SET命令