ホームページ システムチュートリアル Linux はじめに: LFCS の基本で sed の使用方法を学びます

はじめに: LFCS の基本で sed の使用方法を学びます

Jan 09, 2024 am 08:50 AM
linux Linuxチュートリアル レッドハット Linuxシステム Linuxコマンド Linux 認定 レッドハットリナックス Linuxビデオ

###導入### Linux Foundation Certified System Administrators (LFCS) にとってもう 1 つの便利なコマンドは、「sed」です。これは、もともと「Streaming Editor」の略称でした。

「sed」コマンドは、ファイルをストリームとして編集できるエディタです。ファイルをストリーミングする方法は、別のコマンドからファイルをパイプ (> または |) するか、「sed」に直接ロードします。

このコマンドは、ファイルが表示されず、視覚的な編集が許可されないことを除いて、他のエディターと同じように機能します。コマンドはストリームを操作するために「sed」に渡されます。

「sed」では 5 つの基本的なことができます。もちろん、「sed」は非常に強力で、その他の高度な機能も備えていますが、注目する必要があるのは基本的な 5 つのことだけです。 5 つの関数タイプは次のとおりです。
検索### 交換する### 消去### に追加### 変更/変換
コマンドパラメータの説明に入る前に、基本的な構文を確認する必要があります。
###文法###
「sed」コマンドの構文は次のとおりです。
リーリー
これらの「オプション」については、この記事の該当するセクションで説明します。 「コマンド」には、正規表現の検索および置換パターンを使用できます。 「sed」がどのように機能するのかを学び、基本的なコマンドを学びましょう。前に述べたように、「sed」は非常に強力なツールであり、この記事ではさらに多くのオプションを使用できます。

サンプルファイル

ターミナルを開くと、「sed」サンプルのファイルを作成できます。次のコマンドを実行します:

リーリー

これで、HOME フォルダーに grephelp.txt という名前のファイルが作成されるはずです。このファイルの内容は、grep コマンドのヘルプ手順です。

###検索### 特定の文字列の検索はエディターの一般的な機能であり、「sed」での検索の実行も例外ではありません。

検索を実行して、ファイル内の文字列を見つけます。基本的な検索方法を見てみましょう。

サンプル ファイル内で PATTERN という単語を検索する場合は、次のコマンドを使用します。

リーリー 注: コマンドを切り取って貼り付ける場合は、必ず一重引用符をキーボードの標準の一重引用符に置き換えてください。

パラメータ -n は、各行 (p コマンドで指定された行を除く) の自動印刷を抑制するために使用されます。デフォルトでは、「sed」に入力された各行は標準出力 (stdout) に出力されます。 「-n」オプションを指定せずに上記のコマンドを実行すると、元のファイルの各行と一致する行が表示されます。

検索するファイル名は、「サンプル ファイル」セクションで作成した「grephelp.txt」です。

残りの部分は 's/PATTERN/PATTERN/p' です。このセクションは基本的に 4 つの部分に分かれています。 s の最初の部分は、置換または検索と置換を実行することを指定します。

残りの 2 番目と 3 番目の部分はパターンです。最初は検索するパターンで、最後はストリーム内の一致する文字列を置換するパターンです。この例では、文字列 PATTERN を検索し、それを PATTERN に置き換えます。同じ文字列を検索して置換することにより、画面上であってもファイルはまったく変更されません。

最後のコマンドは p です。置換後に新しい行を印刷することを指定します。もちろん、同じ文字列を置き換えるので何も変わりません。 -n パラメータを使用して行の印刷を抑制したため、変更された行は p コマンドを使用して印刷されます。

この完全なコマンドを使用すると、検索を実行し、一致する結果を表示できます。

###交換する###

特定の文字列を検索する場合、新しい文字列を一致する文字列に置き換えることができます。文字列を別の文字列に置換することは、非常に一般的な操作です。

次のコマンドを使用して同じ検索を実行できます:

リーリー

このとき、「PATTERN」という文字列が「Pattern」に変わって表示されます。コマンド cat grephelp.txt を使用してファイルを表示すると、ファイルが変更されていないことがわかります。この変更は、画面上の出力に対してのみ行われます。次のコマンドを使用して、出力を別のファイルにパイプ処理できます:

リーリー

grephelp1.txt という名前の新しいファイルが存在し、変更されたファイルがその中に保存されます。 p を 4 番目のオプションとして残した場合、問題は、置換された文字列の各行がファイル内で 2 回繰り返されることです。 「-n」パラメータを削除して、すべての行を印刷できるようにすることもできます。

文字列を同じ文字列に置き換えるもう 1 つの方法は、& 記号を使用して検索文字列を表すことです。たとえば、コマンド s/PATTERN/&/p も同じ効果があります。文字列を追加できます。たとえば、S を追加するには、コマンド s/PATTERN/&S/p を使用します。

各行の特定のパターンのみを置換したい場合はどうすればよいでしょうか?特定の一致箇所を置換するように指定できます。もちろん、各行の置換は特定の番号です。たとえば、サンプル ファイルには多くのダッシュが含まれています。一部の行には少なくとも 2 つのダッシュがあるため、各行の 2 番目のダッシュを別の文字に置き換えることができます。各行の 2 番目のダッシュをアスタリスク * に置き換えるコマンドは次のようになります:

リーリー

ここでは、元の を使用して置換を実行します。文字 - は * に置き換えられます。 2 は、各行に 2 番目の - が存在する場合はそれを置き換えることを意味します。コマンド 2 を省略すると、最初に出現したダッシュが置き換えられます。すべての行のダッシュではなく、最初のダッシュのみが置き換えられます。

行上のすべてのダッシュを検索してアスタリスクに置き換える場合は、 g コマンドを使用します。

リーリー

コマンドは組み合わせることもできます。 2 番目に出現したダッシュを置き換える場合、コマンドは次のようになります:

sed 's/-/*/2g' grephelp.txt
ログイン後にコピー

现在从第二个开始出现的破折号将被星号取代。

删除

搜索过程中有很多时候你可能想要完全删除搜索字符串。

例如,如果要从文件中删除所有破折号,你可以使用以下命令:

sed 's/-//g' grephelp.txt
ログイン後にコピー

替换字符串为空白,因此匹配的字符串将被删除。

添加

当找到匹配时,你可以添加一行特定的文本,来使这行在浏览或打印中突出。

如果要在匹配后插入新行,那么使用 a 命令,后面跟上新行的字符串。还包括要匹配的字符串。例如,我们可以找到一个 --,并在匹配的行之后添加一行。新行的字符串将是 double dash before this line。

sed '/--/ a "double dash before this line"' grephelp.txt
ログイン後にコピー

如果要在包含匹配字符串的行之前加上这行,请使用 i 命令,如下所示:

sed '/--/ i "double dash after this line"' grephelp.txt
ログイン後にコピー
改变/变换

如果需要改变/变换一行,则可以使用命令 c。

假设我们有个有一些私人信息的文档,我们需要更改包含特定字符串的行。c 命令将改变整行,而不仅仅是搜索字符串。

假设我们想要阻止示例文件中包含单词 PATTERN 的每一行。更改的行将显示为 This line is Top Secret。命令是:

sed '/PATTERN/ c This line is Top Secret' grephelp.txt
ログイン後にコピー

可以进行更改特定字母的大小写的转换。例如,我们可以使用命令 y 将所有小写 a 更改为大写 A,如下所示:

sed 'y/a/A/' grephelp.txt
ログイン後にコピー

可以指定多个字母,如 abdg,如下命令所示:

sed 'y/abdg/ABDG/' grephelp.txt
ログイン後にコピー

确保第二组字母与第一组字母的顺序相同,否则会被替换和转换。例如,字符串 y/a/D/ 将用大写 D 替换所有小写的 a。

就地更改

如果你确实要更改所使用的文件,请使用 -i 选项。

例如,要将 PATTERN 改为 Pattern,并对文件进行更改,则命令为:

sed -i 's/PATTERN/Pattern/' grephelp.txt
ログイン後にコピー

现在文件 grephelp.txt 将被更改。-i 选项可以与上述任何命令一起使用来更改原始文件的内容。

练习这些命令,并确保你理解它们。“sed” 命令非常强大。

(题图:Pixabay,CC0)

以上がはじめに: LFCS の基本で sed の使用方法を学びますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

マルチスレッドをC言語で実装する4つの方法 マルチスレッドをC言語で実装する4つの方法 Apr 03, 2025 pm 03:00 PM

言語のマルチスレッドは、プログラムの効率を大幅に改善できます。 C言語でマルチスレッドを実装する4つの主な方法があります。独立したプロセスを作成します。独立して実行される複数のプロセスを作成します。各プロセスには独自のメモリスペースがあります。擬似マルチスレッド:同じメモリ空間を共有して交互に実行するプロセスで複数の実行ストリームを作成します。マルチスレッドライブラリ:pthreadsなどのマルチスレッドライブラリを使用して、スレッドを作成および管理し、リッチスレッド操作機能を提供します。 Coroutine:タスクを小さなサブタスクに分割し、順番に実行する軽量のマルチスレッド実装。

web.xmlを開く方法 web.xmlを開く方法 Apr 03, 2025 am 06:51 AM

web.xmlファイルを開くには、次の方法を使用できます。テキストエディター(メモ帳やテキストエディットなど)を使用して、統合開発環境(EclipseやNetBeansなど)を使用してコマンドを編集できます(Windows:Notepad web.xml; Mac/Linux:Open -A Textedit Web.xml)

PythonインタープリターはLinuxシステムで削除できますか? PythonインタープリターはLinuxシステムで削除できますか? Apr 02, 2025 am 07:00 AM

Linux Systemsに付属するPythonインタープリターを削除する問題に関して、多くのLinuxディストリビューションは、インストール時にPythonインタープリターをプリインストールし、パッケージマネージャーを使用しません...

Linuxは何に最適なものですか? Linuxは何に最適なものですか? Apr 03, 2025 am 12:11 AM

Linuxは、サーバー管理、組み込みシステム、デスクトップ環境として最適です。 1)サーバー管理では、LinuxはWebサイト、データベース、アプリケーションをホストするために使用され、安定性と信頼性を提供します。 2)組み込みシステムでは、Linuxは柔軟性と安定性のため、スマートホームおよび自動車電子システムで広く使用されています。 3)デスクトップ環境では、Linuxは豊富なアプリケーションと効率的なパフォーマンスを提供します。

Debian Hadoopの互換性はどうですか Debian Hadoopの互換性はどうですか Apr 02, 2025 am 08:42 AM

DebianLinuxは、その安定性とセキュリティで知られており、サーバー、開発、デスクトップ環境で広く使用されています。現在、DebianとHadoopとの直接的な互換性に関する公式の指示が不足していますが、この記事では、DebianシステムにHadoopを展開する方法について説明します。 Debianシステムの要件:Hadoop構成を開始する前に、DebianシステムがHadoopの最小動作要件を満たしていることを確認してください。これには、必要なJavaランタイム環境(JRE)とHadoopパッケージのインストールが含まれます。 Hadoop展開手順:Hadoopをダウンロードして解凍:公式ApachehadoopのWebサイトから必要なHadoopバージョンをダウンロードして解決します

Debian文字列は、複数のブラウザと互換性があります Debian文字列は、複数のブラウザと互換性があります Apr 02, 2025 am 08:30 AM

「DebianStrings」は標準的な用語ではなく、その特定の意味はまだ不明です。この記事は、ブラウザの互換性について直接コメントすることはできません。ただし、「DebianStrings」がDebianシステムで実行されているWebアプリケーションを指す場合、そのブラウザの互換性はアプリケーション自体の技術アーキテクチャに依存します。ほとんどの最新のWebアプリケーションは、クロスブラウザーの互換性に取り組んでいます。これは、次のWeb標準と、適切に互換性のあるフロントエンドテクノロジー(HTML、CSS、JavaScriptなど)およびバックエンドテクノロジー(PHP、Python、Node.jsなど)を使用することに依存しています。アプリケーションが複数のブラウザと互換性があることを確認するには、開発者がクロスブラウザーテストを実施し、応答性を使用する必要があることがよくあります

GOを使用してOracleデータベースに接続するときにOracleクライアントをインストールする必要がありますか? GOを使用してOracleデータベースに接続するときにOracleクライアントをインストールする必要がありますか? Apr 02, 2025 pm 03:48 PM

GOを使用してOracleデータベースに接続するときにOracleクライアントをインストールする必要がありますか? GOで開発するとき、Oracleデータベースに接続することは一般的な要件です...

See all articles