1
HiHi 2015-11-27 22:40:36 +08:00 1
提供一个渣实现:
``` sed "$((`cat 1.txt|wc|awk '{print $1}'`-1))"s/', *$'// 1.txt ``` 楼下继续 |
2
xuyinan503 2015-11-27 23:32:47 +08:00 1
xuyinan@xuyinan:~$ cat test.txt
[ {"ip_port": "11.12.13.14:80", "user_pass": ""}, {"ip_port": "11.12.13.14:80", "user_pass": ""}, {"ip_port": "11.12.13.14:80", "user_pass": ""} ] xuyinan@xuyinan:~$ cat test.txt|sed 's/},\s]/}\n]/' [ {"ip_port": "11.12.13.14:80", "user_pass": ""}, {"ip_port": "11.12.13.14:80", "user_pass": ""}, {"ip_port": "11.12.13.14:80", "user_pass": ""} ] xuyinan@xuyinan:~$ |
3
halfcrazy 2015-11-27 23:37:49 +08:00
tac|sed '2s/},/}/g' aaa.txt|tac > aaa.txt
|
5
lululau 2015-11-27 23:54:15 +08:00 1
gsed -n 'x;1d;$!p;${s#, *$##;p;x;p}'
sed 游戏最好玩了,不过我这个感觉太冗长了,不知道有没有高手可以给个精炼点的 |
7
dant 2015-11-28 01:19:28 +08:00 via Android 1
sed $[$(wc -l file)-1]'s/,//g'
|
8
dant 2015-11-28 01:25:11 +08:00 via Android
更正: sed $[$(wc -l < file)-2]'s/,//' file
|
9
shidenggui 2015-11-28 09:13:52 +08:00 1
echo 'Gk$xZZ' > /tmp/$$ && vim -s /tmp/$$ input.file
|
10
halfcrazy 2015-11-28 21:49:10 +08:00
@shidenggui #TIL
|
11
pityonline 2015-11-29 08:42:47 +08:00 via iPhone
为什么要用 shell 处理一个 json ,况且 json 最后一个逗号是可有可无的?
|
12
Killian OP @pityonline 目标是原来有一个 IP 列表 1.1.1.1:80 ,用 curl 测试可用性,把可用的保存为一个 json 样式
非可有可用 用 python 的 json.loads 有最后一个逗号会报错 |
13
pityonline 2015-11-29 13:54:59 +08:00
@Killian 可能我给记混了, perl 里的 array/hash 的最后一个元素后的逗号是可有可无的, json 的好像没有最后一个逗号的。
|
14
huangmingyou 2015-12-03 09:48:18 +08:00
@lululau 你这个好厉害,看了半天 man page 终于弄明白原理。
|
15
Arthur2e5 2015-12-03 12:10:33 +08:00 1
https://gist.github.com/Arthur2e5/58717a25f931715d3203#file-some-sh
前几个是不带外部命令强迫症的,接下来的 ed 仅供娱乐(要点是你根本不需要其他程序来帮你数行数)。 @dant 使用 $[ c-style-arith-expr ] 是过时( Bourne, Non-POSIX )语法, bash 好心支持也不要滥用。现在推荐用 $((c-style-arith-expr))( POSIX ),顺便还和 bash 拓展的 ((c-style-arith-expr)) 命令长得像。 |