我有关于文本解析的快速问题,例如:
输入="abcdef g"
模式="ae g"
应修改 INPUT 变量,以便删除 PATTERN 字符,因此在此示例中:
输出="bcd f"
我试过用
tr -d $x在'PATTERN'的for循环计数中,但我不知道如何为下一次循环迭代传递输出。
编辑:如果 INPUT 和 PATTERN 变量包含字符串而不是单个字符怎么办???
从哪里来$x
?无论如何,你很接近:
tr -d "$PATTERN" <<< $INPUT
要将结果分配给变量,只需使用
OUTPUT=$(tr -d "$PATTERN" <<< $INPUT)
请注意,空格也会被删除,因为它们是 $PATTERN 的一部分。
使用参数替换的纯 Bash:
INPUT="a b c d e f g"
PATTERN="a e g"
for p in $PATTERN; do
INPUT=${INPUT/ $p/}
INPUT=${INPUT/$p /}
done
echo "'$INPUT'"
结果:
'b c d f'