相关疑难解决方法(0)

使用Unix工具解析JSON

我正在尝试解析从curl请求返回的JSON,如下所示:

curl 'http://twitter.com/users/username.json' |
    sed -e 's/[{}]/''/g' | 
    awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}'
Run Code Online (Sandbox Code Playgroud)

以上将JSON拆分为字段,例如:

% ...
"geo_enabled":false
"friends_count":245
"profile_text_color":"000000"
"status":"in_reply_to_screen_name":null
"source":"web"
"truncated":false
"text":"My status"
"favorited":false
% ...
Run Code Online (Sandbox Code Playgroud)

如何打印特定字段(用-v k=text?表示)?

bash parsing json

794
推荐指数
25
解决办法
87万
查看次数

520
推荐指数
10
解决办法
39万
查看次数

如何在shell脚本中动态生成新的变量名?

我正在尝试在shell脚本中生成动态var名称,以在循环中处理一组具有不同名称的文件,如下所示:

#!/bin/bash

SAMPLE1='1-first.with.custom.name'
SAMPLE2='2-second.with.custom.name'

for (( i = 1; i <= 2; i++ ))
do
  echo SAMPLE{$i}
done
Run Code Online (Sandbox Code Playgroud)

我期待输出:

1-first.with.custom.name
2-second.with.custom.name
Run Code Online (Sandbox Code Playgroud)

但我得到了:

SAMPLE{1}
SAMPLE{2}
Run Code Online (Sandbox Code Playgroud)

是否有可能在飞行中生成var名称?

linux bash shell

38
推荐指数
2
解决办法
5万
查看次数

在bash 3中创建关联数组

在彻底搜索了一种在bash中创建关联数组的方法后,我发现它declare -A array可以解决这个问题.但问题是,它仅适用于bash版本4,服务器在我们系统中的bash版本是3.2.16.

如何在bash 3中实现某种类似关联数组的hack?这些值将传递给类似的脚本

ARG=array[key];

./script.sh ${ARG}
Run Code Online (Sandbox Code Playgroud)

编辑:我知道我可以在awk或其他工具中执行此操作,但我正在尝试解决的方案需要严格的bash.

bash

29
推荐指数
3
解决办法
3万
查看次数

是否可以创建一个脚本来保存和恢复权限?

我正在使用Linux系统,需要在一组嵌套文件和目录上试验一些权限.我想知道是否有一些方法来保存文件和目录的权限,而不保存文件本身.

换句话说,我想保存权限,编辑一些文件,调整一些权限,然后将权限恢复到目录结构,保持更改的文件到位.

那有意义吗?

unix linux permissions shell

25
推荐指数
4
解决办法
2万
查看次数

如何在Linux shell中创建Hashmap?

可能重复:
如何在bash中定义哈希表?

我希望在Linux shell脚本中创建一个哈希映射,它将字符串键与字符串值相关联.有一种简单的方法可以做到这一点吗?

linux shell

8
推荐指数
2
解决办法
4万
查看次数

在bash中通过关联数组的foreach循环只返回最后一个元素

这应该将整个关联数组打印到控制台:

#!/bin/sh

declare -a array=([key1]='value1' [key2]='value2')

for key in ${!array[@]}; do
    echo "Key = $key"
    echo "Value = ${array[$key]}"
done

echo ${array[key1]}
echo ${array[key2]}
Run Code Online (Sandbox Code Playgroud)

相反,它打印oly最后一个变量:

[mles@sagnix etl-i_test]$ ./test.sh 
Key = 0
Value = value2
value2
value2
Run Code Online (Sandbox Code Playgroud)

我的错在哪里?

@htor:Bash版本是3.2.25(1) - 发布.

arrays bash shell

3
推荐指数
1
解决办法
5045
查看次数

使用shell脚本比较两个列表

假设我在文件f1,f2中有两个数字列表,每行一个数字.我想看看第一个列表中有多少个数字不在第二个中,反之亦然.目前我正在使用grep -f f2 -v f1,然后使用shell脚本重复此操作.这很慢(二次时间伤害).这样做有更好的方法吗?

shell associative-array

2
推荐指数
1
解决办法
7879
查看次数