Linuxオペレーティングシステム環境のエコシステムの内部を深く垣間見ることができれば、その組み込みコマンドがコンピューティングの問題のほとんどを解決するのに十分であることがわかります。
そのような問題の1つは、特にサーバー環境にいるときに、ファイル内のテキスト、単語、または文字列を見つけて置き換える必要があることです。この問題の解決策を使用すると、「/etc/apt/sources.list」の更新などの厄介な問題を処理できます。 Linuxシステムのアップグレードが成功した後の」ファイル。
Linuxでのテストテキストファイルの作成
「test.txt」のような名前のテキストファイルを作成します 」と入力し、テキスト、単語、または文字列文字を入力します。このファイルをターミナルインスタンスと同じパスに配置します。
$ nano test.txt OR $ vi test.txt
catコマンドを使用して、作成したテストファイルの変更を柔軟にメモします。
$ cat test.txt
Sedを使用して、ファイル内のテキスト、単語、または文字列を検索および置換する
このストリームエディタの力は、基本的な入力ストリーム変換を簡単に実行できることにあります。 sedコマンドは、ファイル内の対象となるテキスト、単語、または文字列パターンを検索して置き換える際に、すばやく簡単で時代を超越したアプローチを提供します。
ファイル内のテキスト、単語、または文字列の最初の出現箇所を検索して置換する
作成したテストファイルから、「 LinuxShellTips」という単語のすべてのインスタンスを更新します。 」と代替の「このサイト」 」。 sedコマンドの構文 この単純なタスクを実行するために使用するのは次のとおりです。
$ sed -i 's/[THE_OLD_TERM]/[THE_NEW_TERM]/' [TARGETED_FILE]
上記のsedコマンドを参照して 使用法と構文については、テストファイルの「 LinuxShellTips」を置き換えることができます 」という用語と「このサイト」 」という用語は次のとおりです。
$ sed -i 's/LinuxShellTips/this site/' test.txt
これで、catコマンドを使用できます 上記で提案されたテストファイルの変更をプレビューして、大幅な編集が行われたかどうかを確認します。
$ cat test.txt
ご覧のとおり、「 LinuxShellTips」という単語の最初の2つの出現 」は「このサイト」というフレーズに置き換えられました 」。
ファイル内のテキスト、単語、または文字列のすべての出現箇所を検索して置換する
上記のコマンドがテストファイル内のすべてのターゲット単語パターンを置き換えたにもかかわらず、その使用法はほとんどの状況で選択的である傾向があります。このコマンドは小さなファイルに最適です。大きなファイルでは、対象となる単語パターンの最初の数回だけが「検索と置換」の恩恵を受ける可能性があるためです。 の腕前。
編集可能なファイルで出現するすべての単語パターンを見つけて置き換えるには、次のsedコマンドに従う必要があります。 構文。
$ sed -i 's/[THE_OLD_TERM]/[THE_NEW_TERM]/g' [TARGETED_FILE]
お気づきのとおり、'g'
上記のfind&replaceコマンド構文はグローバル変数として機能するため、ターゲットファイル内の用語のすべてのグローバルオカレンスが考慮されます。
$ sed -i 's/this site/LinuxShellTips/g' test.txt
上記のコマンドは、「このサイト」という用語のグローバルな出現をすべて検索します。 」を使用して、「 LinuxShellTips」という用語に置き換えます。 」。
Awkを使用したファイル内のテキスト、単語、または文字列の検索と置換
awkコマンドラインユーティリティに精通している場合は、その強力なスクリプト言語メトリックにより、テキスト処理のプロになることをご存知でしょう。 Linuxシステム管理者とプロのユーザーは、このツールがデータの抽出とレポートに効果的であると感じています。
awkコマンド 単純な検索と置換操作の構文は、次のスニペットのようになります。
$ awk '{gsub("[THE_OLD_TERM]","[THE_NEW_TERM]"); print}' [TARGETED_FILE]
上記の構文では、awkは THE_OLD_TERMに置き換えられます THE_NEW_TERMから TARGETED_FILE内 結果のファイルの内容をシステム端末に印刷します。
実用的なアプローチを取りましょう:
$ awk '{gsub("Linux","ubuntu"); print}' test.txt
両方のsedの動的機能を使用 およびawk コマンドツールを使用すると、対象のファイル内のテキスト、単語、または文字列のパターンを検索、置換、および上書きする必要があります。これらのツールは、システムユーザーにコマンドラインインターフェイスで必要な柔軟性を提供します。