ベストアンサー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>
sed
スクリプトは次のとおりです。どのsed
スクリプトをファイルに入れて、各コマンドを改行(またはその両方)で区切りますsed
。;
次のように実行します。sed -f scriptfilename ...
sed
他のスクリプト言語と同様に、スタンドアロンスクリプトを作成できます。最初の行にchmod +x
すること#!/bin/sed -f
で実行可能になることがあります。たとえば、
#!/bin/sed -f s/foo/bar/ s/abc/def/
sed
単なる「コマンド」ではなく、スクリプト言語です。ほとんどの人は、この言語を使用してパイプラインで小さくシンプルな正規表現の代替操作を実行しますが、sed
それ以上を実行できます。man sed
詳細は参照してください。 GNUはsed
また完全な文書を提供しますテキサス情報ネットワーク滞在。実行しinfo sed
て読んでください(またはビューアがインストールされているpinfo sed
場合はpinfo
はるかに優れていますinfo
)。同じ文書は、次のサイトでさまざまな形式で提供されています。https://www.gnu.org/software/sed/manual/。