このsed操作で:gはどういう意味ですか?

このsed操作で:gはどういう意味ですか?

私は人々がpathsを扱うときに代わりに使用することを知っていますが、次の:作業では何をしますか?/:gsed

引用符の間にpath1があるのはなぜですか?このコードの機能を説明できる人はいますか?

sed -i -e s:INPUT_REPLACE:"${path1}":g ${path2}

ベストアンサー1

コロンは、:パターン(左)と代替項目(右)の間の区切り記号です。 gsedに「グローバル」置換を実行するように指示します(与えられた行の最初の行だけを変更するのではなく、パターンに一致するすべての行のすべての項目を変更します)。

3つの区切り文字が必要なので、3つのコロンを使用します。したがって、:g実際には、最後の区切り記号と修飾子「g」の2つがあります。

この部分の表現を引用すると"${path1}"コマンドでエラーを引き起こすいくつかの文字が含まれています(変数を置き換えるとき)。たとえば、シェルによって渡された代替引数は、スペースまたはタブが含まれている場合はsed2つの部分(エラー)に分割されます。

だから...このコマンドは

sed -i -e s:INPUT_REPLACE:"${path1}":g ${path2}

sed同じファイルを読み書きするように指示します(-iオプション)。ファイルはです${path2}。各行の対応する文字列を含む行を見つけ、"INPUT_REPLACE"変数の内容に置き換えます${path1}"INPUT_REPLACE"すべての行のすべての項目に対してこれを行います。

注: 「${path1}」に「INPUT_REPLACE」が含まれているsed場合、または置換が発生した場合いいえもう一度実行して交換してください。これは初期一致でのみ行われます。

この-iオプションは使用できません。POSIX、しかし利用できますLinuxそしてBSD

おすすめ記事