Sed-useful-recipes
ストリームエディター-便利なレシピ
SEDは、複数の方法で問題を解決できる素晴らしいユーティリティです。 これがUNIXの方法であり、SEDはそれを完全に証明しています。 GNU/Linuxは、日々のタスクを実行するための多くの便利なユーティリティを提供します。 SEDを使用していくつかのユーティリティをシミュレートしましょう。 簡単な問題を難しい方法で解決しているように見えることもありますが、目的はSEDの力を示すことだけです。
猫コマンド
次の例では、各行はデフォルトのワークフローの一部として印刷されます。
上記のコードを実行すると、次の結果が得られます。
次の例では、printコマンドを使用してファイルの内容を表示しています。
上記のコードを実行すると、次の結果が得られます。
空の行を削除する
次の例では、「^ $」は空行を意味し、パターン一致が成功すると空行が削除されます。
上記のコードを実行すると、次の結果が得られます。
同様に、次の例は、空でない場合にのみ行を印刷します。
上記のコードを実行すると、次の結果が得られます。
C ++プログラムからコメント行を削除する
サンプルC ++プログラムを作成しましょう。
次に、次の正規表現を使用してコメントを削除します。
上記のコードを実行すると、次の結果が得られます。
特定の行の前にコメントを追加する
次の例では、行番号3〜5の前にコメントを追加します。
上記のコードを実行すると、次の結果が得られます。
WC -lコマンド
「wc -l」コマンドは、ファイルに存在する行数をカウントします。 次のSED式は同じものをシミュレートします。
上記のコードを実行すると、次の結果が得られます。
ヘッドコマンド
デフォルトでは、headコマンドはファイルの最初の10行を印刷します。 SEDで同じ動作をシミュレートしてみましょう。
上記のコードを実行すると、次の結果が得られます。
テール-1コマンド
「tail -1」は、ファイルの最後の行を出力します。 次の構文は、そのシミュレーションを示しています。
上記のコードを実行すると、次の結果が得られます。
SEDスクリプトを記述しましょう。
上記のコードを実行すると、次の結果が得られます。
Dos2unixコマンド
DOS環境では、改行はCR/LF文字の組み合わせで表されます。 次の「dos2unix」コマンドのシミュレーションは、DOS改行文字をUNIX改行文字に変換します。 GNU/Linuxでは、この文字は「^ M」(コントロールM)文字として扱われることがよくあります。
上記のコードを実行すると、次の結果が得られます。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。
次に、ファイルの内容を表示します。
上記のコードを実行すると、次の結果が得られます。
Unix2dosコマンド
「dos2unix」と同様に、UNIXの改行文字をDOSの改行文字に変換する「unix2dos」コマンドがあります。 次の例は、同じシミュレーションを示しています。
上記のコードを実行すると、次の結果が得られます。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。
次に、ファイルの内容を表示します。
上記のコードを実行すると、次の結果が得られます。
Cat -Eコマンド
「cat -E」コマンドは、行末をドル($)文字で表示します。 次のSEDの例は、同じもののシミュレーションです。
上記のコードを実行すると、次の結果が得られます。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。
Cat -ETコマンド
「cat -ET」コマンドは、各行の最後にドル記号($)を表示し、TAB文字を「^ I」として表示します。 次の例は、SEDを使用した「cat -ET」コマンドのシミュレーションを示しています。
上記のコードを実行すると、次の結果が得られます。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。
nlコマンド
「nl」コマンドは、単にファイルの行に番号を付けます。 次のSEDスクリプトは、この動作をシミュレートします。
上記のコードを実行すると、次の結果が得られます。
最初のSED式は行番号に続いてその内容を出力し、2番目のSED式はこれらの2行をマージして、改行文字をTAB文字に変換します。
cpコマンド
「cp」コマンドは、ファイルの別のコピーを作成します。 次のSEDスクリプトは、この動作をシミュレートします。
上記のコードを実行すると、次の結果が得られます。
展開コマンド
「expand」コマンドは、TAB文字を空白に変換します。 次のコードは、そのシミュレーションを示しています。
上記のコードを実行すると、次の結果が得られます。
ティーコマンド
「tee」コマンドは、データを標準出力ストリームおよびファイルにダンプします。 「tee」コマンドのシミュレーションを以下に示します。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。
cat -sコマンド
UNIXの「cat -s」コマンドは、空の出力行の繰り返しを抑制します。 次のコードは、「cat -s」コマンドのシミュレーションを示しています。
上記のコードを実行すると、次の結果が得られます。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。
grepコマンド
デフォルトでは、「grep」コマンドは、パターンマッチが成功すると行を出力します。 次のコードは、そのシミュレーションを示しています。
上記のコードを実行すると、次の結果が得られます。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。
grep -vコマンド
デフォルトでは、「grep -v」コマンドは、パターン一致が失敗したときに行を出力します。 次のコードは、そのシミュレーションを示しています。
上記のコードを実行すると、次の結果が得られます。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。
trコマンド
「tr」コマンドは文字を変換します。 以下にシミュレーションを示します。
上記のコードを実行すると、次の結果が得られます。
SEDを使用してコマンドをシミュレートしましょう。
上記のコードを実行すると、次の結果が得られます。