我正在尝试解析从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?表示)?
什么是相似的Python字典,但在Bash中(应该适用于OS X和Linux).
我正在尝试在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名称?
在彻底搜索了一种在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.
我正在使用Linux系统,需要在一组嵌套文件和目录上试验一些权限.我想知道是否有一些方法来保存文件和目录的权限,而不保存文件本身.
换句话说,我想保存权限,编辑一些文件,调整一些权限,然后将权限恢复到目录结构,保持更改的文件到位.
那有意义吗?
可能重复:
如何在bash中定义哈希表?
我希望在Linux shell脚本中创建一个哈希映射,它将字符串键与字符串值相关联.有一种简单的方法可以做到这一点吗?
这应该将整个关联数组打印到控制台:
#!/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) - 发布.
假设我在文件f1,f2中有两个数字列表,每行一个数字.我想看看第一个列表中有多少个数字不在第二个中,反之亦然.目前我正在使用grep -f f2 -v f1,然后使用shell脚本重复此操作.这很慢(二次时间伤害).这样做有更好的方法吗?
bash ×5
shell ×5
linux ×3
arrays ×1
dictionary ×1
hashtable ×1
json ×1
parsing ×1
permissions ×1
unix ×1