![]() |
1
12
这个
或者,
对于简单的文本操作,只需使用
我的第一个想法是使用:
它保留了
|
![]() |
2
8
您可能对将Perl用于此类任务感兴趣。作为演示,这里有一个Perl脚本,它打印您想要的数字:
此脚本要求您安装JSON模块,您只需使用命令即可完成此操作。
|
![]() |
3
5
要在shell脚本中使用JSON,请使用 jsawk 哪一个 像awk,但对于json .
|
![]() |
4
3
我的主张:
我在sed参数中输入了两个命令:
在这种情况下,我发现
用于操作字符串(不仅是regex)的其他工具包括:
|
![]() |
5
2
Perl 是一个合适的解决方案,它是一种具有强大regexp功能的shell脚本语言。它可以完成您所需要的大部分工作,而无需生成单独的进程(与普通的UnixShell脚本不同),并且拥有大量的附加函数库。 |
![]() |
6
2
你可以用grep来做。grep-witch中有-o开关,只提取匹配的字符串而不是整行。
|
![]() |
7
2
包括正则表达式功能的工具包括sed、grep、awk、perl、python等等。即使是更新版本的bash也具有regex功能。你所要做的就是查找关于如何使用它们的文档。
可以,但不是必须的。
是的,可以。您只需构造类似的regex,就像使用sed或其他方法一样。请注意,grep只做它所做的,如果您想修改任何文件,它不会为您做。
当然。regex可以很强大,但它不一定是每次使用的最佳工具。这也取决于你所说的“简单/合适”的意思。 在regex上使用的另一种方法是使用字段/分隔符方法。你要寻找可以“分裂”的图案。例如,在您的情况下(我下载了165297.json文件,而不是使用curl…(但它是相同的)
输出:
|
![]() |
8
1
高效的shell脚本可以使用命令组合(不仅仅是您提到的两个命令),利用每个命令的才能。 |
![]() |
9
0
Blindly:
类似(字段分隔符可以是regex):
更智能(查找密钥并打印其值):
|
![]() |
10
0
您可以使用适当的库(如其他人指出的那样):
或
取决于OS/Shell组合。 |
![]() |
11
0
通过shell的简单regex忽略所讨论的特定代码,有时您可能希望使用类似于javascript的字符串语法,以简单的方式,使用shell快速替换所有从stdin到stdout的regex。
下面是一些例子,为任何人寻找一种方法做到这一点。Perl在Mac上是个更好的选择,因为它缺少一些SED选项。如果您想将stdin作为一个变量,可以使用
下面是一个自定义的、可重用的regex函数的例子。论点是 源串 (或——对于stdin) 搜索 , 代替 和 选项 .
|
![]() |
Plankt0n · Shell,执行一个需要逐一遍历多个值的命令 6 月前 |
![]() |
Fin · 如何使用bash从表中提取数据 6 月前 |
![]() |
aenagy · Bash声明不喜欢带空格的值 6 月前 |
![]() |
PkDrew · AND运算符“&”在“&tee”中的作用是什么? 6 月前 |
![]() |
elbarna · 正则表达式仅排除小写字符串,但保存包含大写的字符串 7 月前 |
![]() |
Harry · 使用“$!”获取后台作业的pid 7 月前 |
![]() |
nmr · 使用来自另一个shell脚本的if语句的返回码函数 7 月前 |
![]() |
minseong · Git sed忽略二进制文件 10 月前 |
![]() |
Jesper.Lindberg · 检查参数是否包含null 10 月前 |