GNU/Linux >> Linux の 問題 >  >> Linux

Sedコマンドを使用してファイルから行を削除する方法

ストリーミングエディタ( sed )は、nixベースのシステムでテキストの解析と変換を行う際の重要なツールです。これは、検索、フィルタリング、テキスト置換、およびテキストファイルの挿入、削除、置換、検索などのテキスト操作に使用されます。

[次のこともお勧めします:Sedを使用してファイル内の文字列を検索および置換する方法]

ほとんどのLinuxディストリビューションでは、sedコマンドがプリインストールされており、次のコマンドを使用して確認できます。コマンドとバージョンのバイナリの場所が表示されます。

$ which sed
$ sed --version

この記事では、7行を含むサンプルファイルを使用して、sedコマンドを使用してファイルから行を削除する方法を紹介します。このファイルをデモンストレーションの目的で使用します。

$ cat testfile.txt

First line
second line
Third line
Fourth line
Fifth line
Sixth line
SIXTH LINE

ファイルから行を削除する方法

ファイルから行を削除するには、以下のコマンドを使用できます。 'N'に置き換える必要があります 行番号と'd' 行を削除することです。

$ sed 'Nd' testfile.txt

ファイルから4行目を削除する必要がある場合は、N=4に置き換える必要があります。 。

$ sed '4d' testfile.txt

ファイルから最初と最後の行を削除する方法

前の例で説明したのと同じ構文を使用して、ファイルから最初の行を削除できます。 N=1を入力する必要があります これにより、最初の行が削除されます。

$ sed '1d' testfile.txt

($)で以下のコマンドを使用して、ファイルから最後の行を削除するには ファイルの最後の行を示す記号。

$ sed '$d' testfile.txt

ファイルから行の範囲を削除する方法

ファイルから行の範囲を削除できます。 3から5までの行を削除するとします。次の構文を使用できます。

  • M –開始行番号
  • N –終了行番号
$ sed 'M,Nd' testfile.txt

実際に削除するには、次のコマンドを使用して削除します。

$ sed '3,5d' testfile.txt

!を使用できます 削除操作を無効にする記号。これにより、指定された範囲(3〜5)を除くすべての行が削除されます。

$ sed '3,5!d' testfile.txt

ファイルから空白行を削除する方法

ファイルからすべての空白行を削除するには、次のコマンドを実行します。注意すべき重要な点は、このコマンドを使用することです。スペースのある空の行は削除されません。テストファイルに空の行とスペースのある空の行を追加しました。

$ cat testfile.txt

First line
second line
Third line
Fourth line
Fifth line
Sixth line
SIXTH LINE
$ sed '/^$/d' testfile.txt

上の画像から、空の行は削除されていますが、スペースのある行は削除されていないことがわかります。スペースを含むすべての行を削除するには、次のコマンドを実行できます。

$ sed '/^[[:space:]]*$/d' testfile.txt

[次のこともお勧めします:Grep、Sed、およびAwkを使用してファイル内の空の行を削除する方法]

ファイル内の単語で始まる行を削除する方法

特定の単語で始まる行を削除するには、^を指定して次のコマンドを実行します。 記号は、単語の先頭とそれに続く実際の単語を表します。

$ sed '/^First/d' testfile.txt

特定の単語で終わる行を削除するには、次のコマンドを実行します。削除する単語の後に$が続く 記号は行を削除します。

$ sed '/LINE$/d' testfile.txt

ファイルに直接変更を加える方法

sedを使用してファイルに直接変更を加えるには -iを渡す必要があります ファイルに直接変更を加えるフラグ。

$ sed -i '/^[[:space:]]*$/d' testfile.txt 

記事の終わりになりました。 sed コマンドは、ファイルの操作に取り組んでいるときに主要な役割を果たします。 awkなどの他のLinuxユーティリティと組み合わせた場合 、 grep sedでより多くのことができます 。


Linux
  1. Sedを使用してテキストファイルから複数のランダム行を削除する方法は?

  2. Linuxコマンドラインでファイルの特定の行を表示する方法

  3. コマンドラインからファイルの内容をクリアする方法は?

  1. LinuxコマンドラインからのGoogleドライブの使用

  2. テキストファイルから最初の数行を効率的に削除しますか?

  3. Linuxコマンドラインでファイルから特定の行を削除する

  1. Linuxコマンドを使用してプレーンテキストファイルから重複した単語を削除する方法

  2. sed を使用して二重の空行のみを削除するには?

  3. sed を使用してファイルの最後の n 行を削除する方法