6

単語の末尾に一致して置き換える単純な正規表現ステートメントを bash スクリプトで実行しようとしています。以下は私がやろうとしていることです。

wordh > word:’

以下は私が使用しているコードです。

#!/bin/bash
STAT=${STAT/h$/:’}

私はbashスクリプトに慣れていません$.変数をマークするために使用されるため、bashスクリプトと関係があると思います. 私はそれをエスケープするだけでなく、/その後に別のものを追加しようとしました。削除する$と機能します(単語の終わりをチェックせずに)。

4

2 に答える 2

4

そこにある正規表現は少し異なります。試す:

STAT=${STAT/%h/:’}

マニュアルページから:

${パラメータ/パターン/文字列}

.         The pattern is expanded to produce a pattern just as in pathname
          expansion.   Parameter is expanded and the longest match of pat-
          tern against its value is replaced  with  string.   If  Ipattern
          begins  with /, all matches of pattern are replaced with string.
          Normally only the first match is replaced.   If  pattern  begins
          with  #, it must match at the beginning of the expanded value of
          parameter.  If pattern begins with %, it must match at  the  end
          of  the expanded value of parameter.  If string is null, matches
          of pattern are deleted and the / following pattern may be  omit-
          ted.   If  parameter  is  @  or *, the substitution operation is
          applied to each positional parameter in turn, and the  expansion
          is  the  resultant list.  If parameter is an array variable sub-
          scripted with @ or *, the substitution operation is  applied  to
          each  member  of  the  array  in  turn, and the expansion is the
          resultant list.
于 2016-01-09T06:34:14.317 に答える
0

$ は単語の一部ではありません

あなたが試すことができます

    STAT=wordh\$

試すより

     STAT=${STAT/h$/:’}
于 2016-01-09T06:56:54.390 に答える