我希望能够从字符串中提取标志(-q)及其值。例子:
<string1> -q <value> <string2>
此处,<string1>
和<string2>
可以包含任何字符集。为了澄清<string1>
和<string2>
是任何可能的字符串的占位符。
我想要两件事:
<string1> <string2>
<value>
对于此输入,我也可以执行类似的操作:
<string1> --all <string2>
提取--all
并保留<string1> <string2>
的地方。
与How do I parse command line arguments in Bash?中提出的解决方案不同,我希望能够提取一个标志及其值,然后保留没有该标志及其值的原始命令行输入。
答案 0 :(得分:0)
使用cut
的快速,简单的解决方案:
echo "<string1> -q value <string2>" | cut -d'>' -f2 | cut -d'<' -f1
输出:-q值
注意仅在您的string1 / string2标记之间的任何内容不包含<>
时才有效