用 [ ] 打印表达式

用 [ ] 打印表达式

我有一个表单输入A[BCDE]GT。我希望我的输出是:

ABGT
ACGT
ADGT
AEGT

我尝试使用echo, printf,试图找到可能有用的东西。有谁知道一些有助于执行此操作的命令?

答案1

使用zsh而不是bash,您可以通过替换为来执行一些接近的[BCDE]操作{BCDE}

$ set -o braceccl
$ print -l A{BCDE}GT
ABGT
ACGT
ADGT
AEGT

如果您的输入保证只包含单词字符和[,]字符:

set -o braceccl
input='A[BCDE]GT'
eval "output=( ${${${input//[^][[:IDENT:]]}//\[/{}//\]/\}} )"
print -l $output

答案2

您可以在 shell 中通过脚本使用它。

/usr/bin/env bash
echo 'input a letter (ABCDE)'
read value
echo A$value\GT

注意:检查 env 和 bash 的位置:

$whereis env && whereis bash

/usr/bin/env
/bin/bash

相关内容