0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【コマンド実践】sed

Posted at

はじめに

Linuc Level1の取得に向けて勉強をしているので、コマンドのまとめをメモとして書きます。
取り上げるコマンドの一言説明、コマンド、コマンドのちょっと詳しい説明、実行結果を載せています。

解説

sedコマンドとは

ファイルや標準入力の内容を編集して表示する

→文字列を一部置換したり、全部置換したり、行を削除したり、文字を置換したりして表示できるコマンド

実践

準備

test.txtを作成

~$ cat test.txt
text1 text1.5
text2 text2.5
text3
text3.5
text4
text5

文字列の一部を置換

sed s/文字列1/文字列2/ ファイル名

各行最初に現れる文字列1だけを文字列2に置き換える
* 文字列2の後の/を忘れないこと

~$ sed s/text/T/ test.txt
T1 text1.5
T2 text2.5
T3
T3.5
T4
T5

文字列の全部を置換

sed s/文字列1/文字列2/g ファイル名

全ての文字列1を文字列2に置き換える

~$ sed s/text/T/g test.txt
T1 T1.5
T2 T2.5
T3
T3.5
T4
T5

特定の文字列を含む行を削除

sed /文字列/d ファイル名

文字列が含まれる行を削除する
一致不一致は部分一致で判断される(例ではtext3を指定し、text3.5の行も削除される)

~$ sed /text3/d test.txt
text1 text1.5
text2 text2.5
text4
text5

行番号をしていして削除

sed 行番号1,行番号2d ファイル名

行番号1から行番号2までの行を削除

~$ sed 1,3d test.txt
text3.5
text4
text5

文字を置換する

sed y/文字1文字2.../文字1'文字2'.../ ファイル名

文字1を文字1'に、文字2を文字2'に置き換える

~$ sed y/x,1/s,6/ test.txt
test6 test6.5
test2 test2.5
test3
test3.5
test4
test5

オプション

編集コマンド(上記で説明したもの)を2つ以上組み合わせる

sed -e 編集コマンド1 -e 編集コマンド2 ... ファイル名

$ sed -e s/text/T/ -e s/T/TT/g test.txt
TT1 text1.5
TT2 text2.5
TT3
TT3.5
TT4
TT5

編集コマンドをファイルに記述し、ファイルを読み込む

sed -f コマンドファイル(.sed) ファイル名
*編集コマンドを記述するファイルの拡張子は.sed、編集コマンドのみを記載する

~$ cat command.sed
1,3d
~$ sed -f command.sed test.txt
text3.5
text4
text5
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?