Sedは、Stream EDitorの略で、ファイルに対してテキストの変換と操作を実行するために使用されるコマンドです。これらの変換の一部には、テキストの検索と置換が含まれます。 Linux sedコマンドを使用すると、テキストファイルを開かなくても操作および編集できます。このチュートリアルでは、sedコマンドを使用してテキストファイルを操作する方法を学習します。
Linuxsedコマンド構文
$ sed {OPTIONS} filename
このチュートリアルでは、linuxgeek.txt
を使用します 参照ファイルとしてのファイル。
# cat linuxgeek.txt
出力
1。文字列の置換または置換
ほとんどの場合、sedコマンドはテキストの文字列を置き換えるために使用されます。
以下のコマンドは、「 Linux」を置き換えます ‘と‘ Unix ‘。
# sed 's/Linux/Unix/' linuxgeek.txt
s
コマンドには置換インジケーターがあります。-
/
区切り文字です -
Linux
検索語です -
unix
置換用語です
デフォルトでは、sedコマンドは行の最初の出現のみを置き換えます 。後続のオカレンスは置換または置換されません。
出力
2。行のn番目のオカレンスを置換または置換する
行の2番目の文字列オカレンスを置き換える場合は、/2
を使用します 示されているようにフラグを立てます。
# sed 's/Linux/Unix/2' linuxgeek.txt
出力
3。ファイル内のパターンのすべての出現箇所を置換または置換する
ファイル内の検索パターンのすべての出現箇所を置き換えるには、/g
を使用します 国旗。 /g
はグローバルな代替品です。
# sed 's/Linux/Unix/g' linuxgeek.txt
出力
4。特定の行でのみ出現する文字列をすべて置換または置換する
特定の行、たとえば2行目の文字列のすべての出現箇所を置き換える場合は、以下の構文を使用します
# sed '2 s/Linux/Unix/g' linuxgeek.txt
出力
5。特定の行範囲の文字列を置換または置換する
文字列置換が発生する行の範囲を指定する場合は、以下の例を使用してください。この例では、1〜3行目から置換を実行するように指示しています
# sed '1,3 s/Linux/Unix/g' linuxgeek.txt
出力
さらに、図のように、特定の行からファイルの最後までテキストを置き換えることができます
# sed '2,$ s/Linux/Unix/g' linuxgeek.txt
このコマンドは、ファイルの2行目から最後の行までのすべてのオカレンスを置き換えます。
出力
6。すべての単語の最初の文字を括弧で囲みます
次の例は、行の単語の最初のすべての文字に括弧を付ける方法を示しています。
$ echo "Hey Guys, Welcome To Linux Operating System" | sed 's/\(\b[A-Z]\)/\(\1\)/g'
出力
7。ファイルから行を削除する
linux sedコマンドを使用して、ファイル内の行を削除することもできます。
例
構文:
$ sed 'nd' filename.txt
ファイルの3行目を削除するには、
を実行します。$ sed '3d' linuxgeek.txt
出力
3行目から5行目までの行の範囲を削除するには、次のコマンドを実行します。
$ sed '3,5d' linuxgeek.txt
出力