2

たとえば、テキストの解析について簡単な質問があります。

INPUT="abcdef g"
PATTERN="ae g"

PATTERN 文字を削除するように INPUT 変数を変更する必要があるため、この例では次のようになります。

OUTPUT="bcd f"

私は使用しようとしました

tr -d $x
「PATTERN」によるforループカウントでは、次のループ反復のために出力を渡す方法がわかりません。

編集: INPUT 変数と PATTERN 変数に単一の文字ではなく文字列が含まれている場合はどうなりますか?

4

2 に答える 2

3

どこ$xから来たの?とにかく、あなたは近くにいました:

tr -d "$PATTERN" <<< $INPUT

結果を変数に割り当てるには、次を使用します。

OUTPUT=$(tr -d "$PATTERN" <<< $INPUT)

スペースは$PATTERNの一部であるため、スペースも削除されることに注意してください。

于 2012-06-25T07:37:44.163 に答える
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'
于 2012-06-25T09:57:00.040 に答える