如何在shell脚本中提取模式之前的字符串

Kum*_*ran -3 bash shell

我有一个变量,其内容如下

第1
行第2行
第3行
======
第4
行第5行
第6行
======
........
第n行
======

现在我想在所有“======”模式出现之前提取行,并且我想将其分配给每个变量。
预期输出
Var1=line 1
line 2
line 3
Var2=line 4
line 5
line 6
..........
Var_n=line n

将其存储在数组中也可以接受
如何做到?

Jay*_*hoi 5

您可以使用参数扩展来实现,如下所示

str="mystring:yourstring"  //here assume ":" is pattern
var=${str%:*}
echo $var
Run Code Online (Sandbox Code Playgroud)

作为您的信息,您可以使用#%来获取模式后的字符串

var=${str#*:}
Run Code Online (Sandbox Code Playgroud)

  • @kumaran 大约 5 小时前回答了这个问题,您编辑了问题(仅 3 分钟前),完全有不同的要求!怎么能说不是呢!!首先学习如何提问。5小时后你意识到这不是你的答案。但我说你问错了问题,而我回答了这个问题。参见 votig 。 (2认同)