从字符串

时间:2019-02-11 09:09:38

标签: bash

我希望能够从字符串中提取标志(-q)及其值。例子:

<string1> -q <value> <string2>

此处,<string1><string2> 可以包含任何字符集。为了澄清<string1><string2>是任何可能的字符串的占位符

我想要两件事:

  1. 能够获取字符串 <string1> <string2>
  2. 能够获取字符串<value>

对于此输入,我也可以执行类似的操作:

<string1> --all <string2>

提取--all并保留<string1> <string2>的地方。

How do I parse command line arguments in Bash?中提出的解决方案不同,我希望能够提取一个标志及其值,然后保留没有该标志及其值的原始命令行输入。

1 个答案:

答案 0 :(得分:0)

使用cut的快速,简单的解决方案:

 echo "<string1> -q value <string2>" | cut -d'>' -f2 | cut -d'<' -f1

输出:-q值

注意仅在您的string1 / string2标记之间的任何内容不包含<>

时才有效