![]() |
1
24
我很惊讶这里没有本地的bash解决方案。是的,bash有正则表达式。您可以在网上找到大量随机文档,特别是如果您在查询中包含“bash-rematch”,或者只是查看手册页。这是一个愚蠢的例子,取自 here 稍微修改一下,打印出整个匹配,以及每个捕获的匹配,作为正则表达式。
重要的一点是扩展测试
|
![]() |
2
1
如果你想在bash中完成它,你可以做如下的事情。它使用globbing而不是regexps
|
![]() |
3
1
尝试在命令周围加双引号。
|
![]() |
4
0
取决于你想对变量做什么
输出:
上面只是打印出来的。如果需要,存储在array中以备以后使用…例如array[++d]=s |
![]() |
5
0
在(ba)sh中拆分记录并不容易,但可以使用ifs在单个字符上进行拆分(只需在for循环之前设置ifs='*',但这会生成多个空记录,如果任何记录包含'*',则会出现问题)。显而易见的解决方案是使用Perl或Awk并使用RS来分割记录,因为这些工具为分割记录提供了更好的机制。一个混合的解决方案是使用Perl进行记录拆分,让Perl用您想要的记录调用您的bash函数。例如:
这将提供以下输出: record start: this is a 2-line record record end record start: the 2nd record is 3 lines long record end record start: a 3rd * record record end |
![]() |
lonix · 使用sed从JSON中提取非贪婪正则表达式 1 年前 |
![]() |
g00dds · 如何在bash中从文件中的每一行解码base64? 2 年前 |
![]() |
Paul · Bash wait命令忽略指定的进程ID 2 年前 |
![]() |
RafaÅ G. · 如何使用从文件读取的多行参数运行ssh? 2 年前 |
![]() |
Priya · 在shell脚本中多次运行python脚本 3 年前 |