小编Guf*_*oru的帖子

从每一行中删除一部分 JSON 数据的命令?

我有test.json不同长度的行的文件。一些虚构的例子:

{ a: 123, b: sd, c: x45, d: 1, e: '' }
{ a: 5, b: bfgg, c: x4c, d: 31, e: '' }
Run Code Online (Sandbox Code Playgroud)

我想在d- 部分之后剪切整个子字符串并返回每一行:

{ a: 123, b: sd, c: x45 }
{ a: 5, b: bfgg, c: x4c }
Run Code Online (Sandbox Code Playgroud)

我在这里发现一个类似的问题,并试图使我的问题适应它:

echo test.json |  sed 's/. d:/' > newtest.json
Run Code Online (Sandbox Code Playgroud)

我需要为整个文件做这件事,而不仅仅是一行。

string text-processing json

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

仅替换字符的第一个实例

例如我有一个看起来像的 scv 文件

a1, b1, c1, d1
a2, b2, c2, d2
a3, b3, c3, d3
Run Code Online (Sandbox Code Playgroud)

我想要做的是,用分号替换第一个逗号;。第一个逗号的位置可以是可变的(a在行中n并且m可以有不同的长度)。最后我的文件看起来像

a1; b1, c1, d1
a2; b2, c2, d2
a3; b3, c3, d3
Run Code Online (Sandbox Code Playgroud)

其他逗号必须保留。有人可以告诉我最简单的解决方案吗?

PS我的解决方案不起作用: sed '/s/,/;/g' file.csv

sed text-processing csv

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

按列值进行数字排序

例如,我有一些测试文件,想按列值对其进行排序。后

awk -F'[:,]' '{print $16}' test.json
Run Code Online (Sandbox Code Playgroud)

我得到第 16 列的下一个输出:

 123
 457
 68
 11
 939
 11
 345
 9
 199
 13745
Run Code Online (Sandbox Code Playgroud)

现在,当我想对它进行数字排序时,我使用

awk -F'[:,]' '{print $16}' test.json | sort -nk16
Run Code Online (Sandbox Code Playgroud)

但我只是回来而不是数字排序......

 11
 11
 123
 13745
 199
 345
 457
 68
 9
 939
Run Code Online (Sandbox Code Playgroud)

原因是什么,我认为-n参数足以进行数字排序......

sort numeric-data

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

标签 统计

text-processing ×2

csv ×1

json ×1

numeric-data ×1

sed ×1

sort ×1

string ×1