我对文本解析有快速提问,例如:
INPUT="a b c d e f g"
PATTERN="a e g"
应修改INPUT变量,以便删除PATTERN字符,因此在此示例中:
OUTPUT="b c d f"
我试图在'PATTERN'的for循环计数中使用
tr -d $x,但我不知道如何为下一次循环迭代传递输出。
编辑: 如果INPUT和PATTERN变量如何包含字符串而不是单个字符???
答案 0 :(得分:3)
$x
来自哪里?无论如何,你很亲密:
tr -d "$PATTERN" <<< $INPUT
要将结果分配给变量,只需使用
OUTPUT=$(tr -d "$PATTERN" <<< $INPUT)
请注意,空格也会被移除,因为它们是$ PATTERN的一部分。
答案 1 :(得分:2)
使用参数替换的纯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'