sedの複数のコマンドに関する質問

sedの複数のコマンドに関する質問

sed -e 'script' -e 'script'同じですかsed "script;script"

また、単一ファイルチェック中にこれらの複数のコマンドが実行されますか?それとも、より多くのスクリプトを入れるほど、ファイルに対してより多くのスキャン/パスが実行されますか? (スクリプトごとに1つ)

sedはスクリプト言語なので、マルチパス理論に傾いています...たとえば、次のスクリプトがある場合は、次のsed "script;script"sedスクリプトがあります。

script
script

したがって、すべてがプログラムで行われると仮定するのは当然です。

しかし、だからどうですか-e 'script' -e 'script'

最も重要なのは、sedにこれを一度だけ実行して、大容量ファイルに貴重なCPUサイクルを節約するように指示する方法はありますか?sedがこれを実行できない場合は、このようなタスクを実行する他の方法はありますか? (たぶんawkはもっと適していますか?ちょっと待ってください)

お時間をいただきありがとうございます。

答え1

  • 各入力行に対して、各式/スクリプトが順番に適用されます。注文する

    sed -e 's/apple/orange/g' -e 's/orange/red/g'
    

    文字列のすべての項目を置き換えますapple そして orange文字列としてred

  • ただ旅行データを入力して。sed処理ストリームはストリームエディタ結局、入力ストリームは検索可能である必要はありません。

あなたが提示した例は、

sed -e "script1" -e "script2"

同じですか?

sed "script1;script2"

これは次のとおりです。

sed -f file1 -f file2

その中には、以下に関連する科がfile1含まれています。script1file2script2

sed -f file

file含む

script1
script2

または

script1;script2

あなたのミッションに適しているかどうかsedは完全にミッションに依存します。同様に、ファイルや入力ストリームを複数回解析する必要はありませんsed。一部のタスク、特に集計データを必要とするタスクがawkより適しています。awk

sedこれはエディタであり、awkテキスト処理言語に近いです。

関連情報