Sedチュートリアル(3)のSed構文

3224 ワード

sedの使用は簡単で、sedコマンドが直接コマンドラインまたはsedコマンドを持つテキストファイルの形式を提供することができます.このチュートリアルでは、sedを呼び出す例について説明します.この2つの方法があります.
Sedコマンドライン
コマンドラインsedコマンドで単一引用符を指定できるフォーマットは、次のとおりです.
sed [-n] [-e] 'command(s)' files 


テキストファイルがあることを考えてみましょうtxtは処理され、以下の内容があります.
1) A Storm of Swords, George R. R. Martin, 1216 
2) The Two Towers, J. R. R. Tolkien, 352 
3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
5) The Pilgrimage, Paulo Coelho, 288 
6) A Game of Thrones, George R. R. Martin, 864

まず、sedファイルの完全な表示内容を使用するコマンドはありません.
[jerry]$ sed '' books.txt

上記のコードを実行すると、次の結果が得られます.
1) A Storm of Swords, George R. R. Martin, 1216
2) The Two Towers, J. R. R. Tolkien, 352
3) The Alchemist, Paulo Coelho, 197
4) The Fellowship of the Ring, J. R. R. Tolkien, 432
5) The Pilgrimage, Paulo Coelho, 288
6) A Game of Thrones, George R. R. Martin, 864

次に、sedが表示されるdeleteコマンドから行を削除することを上記のファイルに表示します.1行目、2行目、5行目を削除しましょう.
ここで、指定した3行を削除するには、-eオプションを持つ3つの個別のコマンドを指定しました.
[jerry]$ sed -e '1d' -e '2d' -e '5d' books.txt 

上記のコードを実行すると、次の結果が得られます.
3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
6) A Game of Thrones, George R. R. Martin, 864 

sedスクリプトファイル
次の2つ目の形式では、sedスクリプトファイルsedコマンドを提供します.
sed [-n] -f scriptfile files

まず、別の行に含まれるテキストcommandsを作成します.txtファイル、1つの動作ごとにsedコマンドを下図に示します.
1d 
2d 
5d 

これで、sedにテキストファイルから命令を読み出し、操作を実行するように指示することができます.ここでは、上記の例のように、同じ結果を実現する.
[jerry]$ sed -f commands.txt books.txt

上記のコードを実行すると、次の結果が得られます.
3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
6) A Game of Thrones,George R. R. Martin, 864 

sed標準オプション
sedサポートは、コマンドラインから以下の標準選択を提供します.
-nオプション
これは、モードバッファのデフォルトの印刷オプションです.GNU sedインタプリタは、-nオプションの代わりに--quiet,--silentオプションを提供します.
たとえば、次のsedコマンドは出力を表示しません.
[jerry]$ sed -n '' quote.txt 

-eオプション
-eオプションの編集オプション.このオプションを使用すると、複数のコマンドを指定できます.たとえば、次のsedコマンドでは、行ごとに2回印刷されます.
[jerry]$ sed -e '' -e 'p' quote.txt

上記のコードを実行すると、次の結果が得られます.
There is only one thing that makes a dream impossible to achieve: the fear of failure. 
There is only one thing that makes a dream impossible to achieve: the fear of failure. 
 - Paulo Coelho, The Alchemist 
 - Paulo Coelho, The Alchemist

-fオプション
-fオプションは、sedコマンドを含むファイルを提供するために使用されます.たとえば、ファイルから印刷コマンドを指定するには、次のようにします.
[jerry]$ echo "p" > commands.txt 
[jerry]$ sed -n -f commands quote.txt

上記のコードを実行すると、次の結果が得られます.
There is only one thing that makes a dream impossible to achieve: the fear of failure. 
 - Paulo Coelho, The Alchemist