我有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)
我需要为整个文件做这件事,而不仅仅是一行。
例如我有一个看起来像的 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
例如,我有一些测试文件,想按列值对其进行排序。后
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
参数足以进行数字排序......