登录 立即注册

找到11540个回复

无名啊 4楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)

@庸人,比如:

$ readarray -td $'\0' arr < <(jq -rj '[.[].name] | join("\u0000")' <<<'[{"id": 1, "name": "a\nb\n"}, {"id": 2, "name": "c\nd"}]')
$ declare -p arr
declare -a arr=([0]=$'a\nb\n' [1]=$'c\nd')

如果你不担心你的 name 里有换行符的话,可以直接:

$ readarray -t arr < <(jq -r '.[].name' <<<'[{"id": 1, "name": "ab"}, {"id": 2, "name": "cd"}]')
$ declare -p arr
declare -a arr=([0]='ab' [1]='cd')
无名啊 3楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)

@庸人,直接回答:可以用 Bashreadarray 来一次性读到某个数组

另外:

  1. Bash Shell 更适合交互式和简单脚本使用。含有数组、字典甚至更复杂数据结构的,可能都值得你考虑换其他语言了
  2. 不想换的话,考虑尽量用 jq 来一次性生成你最终要的数据?
庸人 2楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)
@无名啊,格式就是这样(图下),我主要取出元素playlist下面的所有name元素数组(.playlist[].name),然后有没有办法直接将其结果赋给脚本内变量数组(不想每次都调用),我下图用的循环取出方法,有没有更简单的
Screenshot_2022-10-25-20-08-20-146_bin.mt.plus.jpg(562.67 KB)Screenshot_2022-10-25-19-59-39-914_bin.mt.plus.jpg(535.46 KB)
老虎会游泳 6楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

@童真再见,最常见的原因是压缩包解压时乱码。当然也可能是程序创建中文文件夹名时乱码。

童真再见 5楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

@无名啊,我替换文件时发现的
手机

无名啊 4楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

@童真再见@tasy5kg,你们都是咋找到这种文件(夹)的?我打开 Everything 都不知道搜点什么关键词。。

童真再见 3楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

@tasy5kg@怒放家族de霖,百度搜里面的文件名字是谷歌浏览器的,但是它为啥起这种名字?跟病毒乱码了一样
手机

凡焰 9楼回复 凡焰求推荐blog程序 (2022-10-25//)
@TabKey9,那个估计不行,我这个就只发图片,再做个人物介绍一类的,现在再测试typecho,还不错
怒放家族de霖 2楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

看路径,有点像谷歌浏览器的(用户)设置数据及缓存文件夹。但又没挂在谷歌的目录里,怪
虎友高配版(绿色)

tasy5kg 1楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)
Screenshot_2022-10-25-13-14-39-802_com.google.android.documentsui-edit.jpg(33.18 KB)

我手机里也有类似的文件名,不知道是什么
虎老会泳游 4楼回复 虎老会泳游第一次遇到这情况 (2022-10-25//)
@晨曦,没有,年中才续费上
晨曦 8楼回复 凡焰求推荐blog程序 (2022-10-25//)
zb Typecho
我是晨曦,我喂自己袋盐!
晨曦 3楼回复 虎老会泳游第一次遇到这情况 (2022-10-25//)
是不是要过期了
我是晨曦,我喂自己袋盐!
虎老会泳游 2楼回复 虎老会泳游第一次遇到这情况 (2022-10-25//)
@无名啊,有这个可能,我刚回了邮件
无名啊 1楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)

@庸人,你传一下原始 json 文件,和写一下你期望得到的结果呗?

无名啊 1楼回复 虎老会泳游第一次遇到这情况 (2022-10-25//)

@虎老会泳游,不懂

为嘛不直接报价呢?还是说,只是搜集域名对应的联系人?

无名啊 13楼回复 HongKongDolllinux上图片太大,有没有啥命令可以压缩 (2022-10-25//)

@TabKey9,噢,突然明白你的意思了

看来我还是太纯洁了

无名啊 8楼回复 无名啊用于解决树形结构存储的闭包表,凭什么能快速获取某个节点的祖先节点/父节点/子节点? (2022-10-25//)

@老虎会游泳,我是读到一篇博文《在数据库中存储一棵树,实现无限级分类》时知道闭包表的。

(这篇博文还流传很广泛,我在必应上搜 “ClosureTable”,大半文章也参考/引用这篇博文内容/图片)

但看了文章下来后,没看懂为啥高效。。问了博主后,博主将结构改成了:

CREATE TABLE 闭包表 (
+   后代节点ID INT,
    祖先节点ID INT,
-   后代节点ID INT,
    这俩节点距离 INT,
-   PRIMARY KEY (祖先节点ID, 后代节点ID),
+   PRIMARY KEY (后代节点ID, 祖先节点ID)
);

我拿他文中的数据和修改前后的表结构去测试。结论是:

无论是原来的闭包表结构,还是修改后的,在查询祖先/父/子/后代节点时,都有不同程度的大范围扫表现象

下面的 SQL,能自动根据该博主的数据表,建立俩修改前后的闭包表,并进行各种测试,以观察扫了多少行闭包表

-- -------- 原来的闭包表结构 --------

CREATE TABLE IF NOT EXISTS 原来的闭包表 (
  祖先 VARCHAR(16),
  后代 VARCHAR(16),
  距离 INT,
  PRIMARY KEY (祖先, 后代, 距离))
SELECT REPLACE(b.`name`, 'root', '根') 祖先,
       REPLACE(c.`name`, 'root', '根') 后代,
       a.distance 距离
  FROM category_tree a
  JOIN category b ON b.id = a.ancestor
  JOIN category c ON c.id = a.descendant;

-- -------- 修改后的闭包表结构 --------

CREATE TABLE IF NOT EXISTS 修改后闭包表 (
  后代 VARCHAR(16),
  祖先 VARCHAR(16),
  距离 INT,
  PRIMARY KEY (后代, 祖先, 距离))
SELECT REPLACE(b.`name`, 'root', '根') 后代,
       REPLACE(c.`name`, 'root', '根') 祖先,
       a.distance 距离
  FROM category_tree a
  JOIN category b ON b.id = a.descendant
  JOIN category c ON c.id = a.ancestor;

-- 1. 查找子节点
EXPLAIN SELECT 后代 FROM 原来的闭包表 WHERE 祖先 = '根' AND 距离 = 1; -- rows: 14 = COUNT(category)
EXPLAIN SELECT 后代 FROM 修改后闭包表 WHERE 祖先 = '根' AND 距离 = 1; -- rows: 54 = COUNT(category_tree)

-- 2. 查找父节点
EXPLAIN SELECT 祖先 FROM 原来的闭包表 WHERE 后代 = '电脑配件' AND 距离 = 1; -- rows: 54
EXPLAIN SELECT 祖先 FROM 修改后闭包表 WHERE 后代 = 'RTX3080' AND 距离 = 1; -- rows: 6 = 所在层数
-- 上面这行复杂度是 O(N)。若是 1000 层的节点获取父节点,需要扫 1000 行表。

-- 3. 查找祖先节点
EXPLAIN SELECT 祖先 FROM 原来的闭包表 WHERE 后代 = '电脑配件' ORDER BY 距离 DESC; -- rows: 54
EXPLAIN SELECT 祖先 FROM 修改后闭包表 WHERE 后代 = 'RTX3080' ORDER BY 距离 DESC; -- rows: 6

-- 4. 查找后代节点(下面查的,实际是最后一层,没后代的)
EXPLAIN SELECT 后代 FROM 原来的闭包表 WHERE 祖先 = 'RTX3080'; -- rows: 1
EXPLAIN SELECT 后代 FROM 修改后闭包表 WHERE 祖先 = 'RTX3080'; -- rows: 54
HongKongDoll 12楼回复 HongKongDolllinux上图片太大,有没有啥命令可以压缩 (2022-10-25//)
我直接下载到win上吾爱随便找个软件压缩了再上传上去了1g图片 压缩成200m
老虎会游泳 6楼回复 george0623飞腾UOS20 安装魔兽战网 (2022-10-25//)

@15883258187,目前没有。64位目前难以运行起来。

下一页 上一页 (319 / 577页)

11月13日 15:22 星期四

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1