1つのsedコマンドにいくつの式を追加できますか? [閉鎖]

1つのsedコマンドにいくつの式を追加できますか? [閉鎖]

sed -e 'expression1' -e 'expression2' inputfile良い結果。

私のタスクでは、sedシェルスクリプト内のコマンドに多くの式を追加します。しかし、絵文字は2つの色に分かれています。

ここに画像の説明を入力してください。sedこれを処理するために、コマンドにいくつかの式を追加できますかsed

ベストアンサー1

  1. sedコマンドラインに入力された(またはシェルスクリプトに含まれる)スクリプトの長さは、シェルが許可する最大コマンドライン長(最新のシェルの場合はメガバイト)まで可能です。

    もありますいいえスクリプトに複数のタスクを実行させるには、その-eスクリプトを複数回使用する必要があります。sed改行またはセミコロンを使用して複数のコマンドを区別できます。

    たとえば、次のようになります。

    sed -e 's/foo/bar/' -e 's/abc/def/'
    

    あなたはできます:

    sed -e 's/foo/bar/; s/abc/def/'
    

    または:

    sed -e 's/foo/bar
            s/abc/def'
    

    shと同様に、ステートメント間の余分なスペースは重要ではありません。;上記の最初の例の後にはスペースを使用し、2番目の例では読みやすさを向上させるためにインデントにさらにスペースを使用しました。

    一部のsedコマンドはではなく、改行でのみ終了します;。これは、;sedコマンドの区切り文字と改行の一般的な規則に関するよく文書化された例外です。詳細については参照https://www.gnu.org/software/sed/manual/html_node/Multiple-commands-syntax.html(この文書はすべて/ほとんどのバージョンに適用されますsed- GNUへの非標準拡張は言及されたときに言及されます)。

    たとえば、特定の文字列の直後に複数行のテキストを追加したい場合(append)コマンドは、a改行文字でのみ終了できるコマンドの1つです。sed

    /search-string-here/ a\
    text line 1 ; semicolons are just text\
    text line 2 ; and more text here\
    
    <more sed commands can go here>
    
  2. sedスクリプトは次のとおりです。どのsedスクリプトをファイルに入れて、各コマンドを改行(またはその両方)で区切りますsed;次のように実行します。

    sed -f scriptfilename ...
    

    sed他のスクリプト言語と同様に、スタンドアロンスクリプトを作成できます。最初の行にchmod +xすること#!/bin/sed -fで実行可能になることがあります。

    たとえば、

    #!/bin/sed -f
    
    s/foo/bar/
    s/abc/def/
    
  3. sed単なる「コマンド」ではなく、スクリプト言語です。ほとんどの人は、この言語を使用してパイプラインで小さくシンプルな正規表現の代替操作を実行しますが、sedそれ以上を実行できます。

    man sed詳細は参照してください。 GNUはsedまた完全な文書を提供しますテキサス情報ネットワーク滞在。実行しinfo sedて読んでください(またはビューアがインストールされているpinfo sed場合はpinfoはるかに優れていますinfo)。同じ文書は、次のサイトでさまざまな形式で提供されています。https://www.gnu.org/software/sed/manual/

おすすめ記事