Skip to content

Instantly share code, notes, and snippets.

@arc279
arc279 / redis eval lua
Last active February 24, 2017 11:10
redisのsetをluaでscan
redis-cli -n 0 --eval test.lua 0 '*' 10
@arc279
arc279 / a.lua
Last active April 19, 2017 20:24
redis lua update sample
redis.replicate_commands()
local cr = 0
local b = {}
while true do
local a = redis.call("SCAN", cr, "MATCH", "????", "COUNT", 10)
for i, v in ipairs(a[2]) do
local j = cjson.encode({v, v, v})
redis.call("SET", v, j)
@arc279
arc279 / a.sh
Last active March 15, 2017 08:38
redis hash dump by hscan
#!/bin/bash
function dump_redis_hash_to_json() {
# redis の hash をjsonに出力
key=$1
num=$2
output=$3
cr=0
while true; do
@arc279
arc279 / kuro.sh
Last active March 22, 2017 08:02
bashで黒魔道士
#!/bin/bash
while read x; do
fold -s1 <<<"$x" | while read y; do
[ ! -z $y ] && printf "\x1b[%dm \x1b[0m" $((y+40)) || printf " "
done
echo
done <<EOD
00
00330
@arc279
arc279 / a.txt
Last active April 19, 2018 08:36
json配列を1行ずつに分割・それを戻す
$ cat <<EOD | jq -c '.[]'
> [ [ 11, 12, 13 ], [ 21, 22, 23 ], [ 31, 32, 33 ] ]
> EOD
[11,12,13]
[21,22,23]
[31,32,33]
$
$ cat <<EOD | jq -c '.[]' | jq -s 'reduce .[] as $i ([]; .+[$i])'
> [ [ 11, 12, 13 ], [ 21, 22, 23 ], [ 31, 32, 33 ] ]
> EOD
@arc279
arc279 / a.sh
Last active March 29, 2017 11:01
欠損のあるtsvをjsonに整形
#!/bin/bash
cat a.tsv | nkf -Lu | \
while IFS=$'\n' read x; do
echo "$x" | tr "\t" "\n" | while read y; do
# unquote
echo "$(eval echo $y)"
done | jo -a
done
@arc279
arc279 / a.sh
Last active April 12, 2017 10:00
bash で array_zip
#!/bin/bash
a=(1 2 3 4 5)
b=(a b c d e)
paste -d ',' <(printf "%s\n" "${a[@]}") <(printf "%s\n" "${b[@]}")
@arc279
arc279 / a.sh
Last active April 27, 2017 08:05
入力を複数の名前付きパイプに流して最後に結合する
#!/bin/bash
rm -rf f1 f2
mkfifo f1
mkfifo f2
cat $0 | tee >(tac | cat -n > f1) >(cat -n > f2) >/dev/null
paste f1 f2 -d $'\n'
@arc279
arc279 / a.json
Created May 9, 2017 03:04
jq でキーと値を差し替える
[
{
"id": "1-key",
"attr": "1-value"
},
{
"id": "2-key",
"attr": "2-value"
},
{
@arc279
arc279 / a.sh
Created May 17, 2017 06:38
pivot と unpivot
#!/bin/bash
function data() {
printf "%s\n" $(echo {1..10}{a..c}) | while read x; do
NUM=${x:0: -1}
CATE=${x: -1}
printf "%s\t%s\t%s\n" $NUM $CATE value_$NUM$CATE
done
}