LoginSignup
0
0

More than 3 years have passed since last update.

Linux sedコマンド メモ

Last updated at Posted at 2021-03-05

目的

  • 特定の文字列の置換

s///g とは何か

  • s/A/B/g は A という文字を B という文字に置換してね!という意味
  • s は置換をしてね!という意味
  • g はマッチしたとこ全部置換してね!という意味

■ サンプルファイル

sample.txt
a,b,c
d,e,f
g,h,i
j,k,l

すべてのコンマを*に置換

$ sed 's/,/*/g' sample.txt
a*b*c
d*e*f
g*h*i
j*k*l

※ s///g の最後の g がないと、各行の最初にマッチした文字のみ置換する

$ sed 's/,/*/' sample.txt
a*b,c
d*e,f
g*h,i
j*k,l

2行目だけコンマを*に置換

★ 行数を s の前に書く

$ sed '2s/,/*/g' sample.txt
a,b,c
d*e*f
g,h,i
j,k,l

1行目のコンマを*に置換、3行目のコンマを@に置換

★ オプション e は複数の置換をしたいとき使う

$ sed -e '1s/,/*/g' -e  '3s/,/@/g' sample.txt
a*b*c
d,e,f
g@h@i
j,k,l

2行目から4行目のコンマを*に置換

★連続している行なら2,4sのように書く

$ sed '2,4s/,/*/g' sample.txt
a,b,c
d*e*f
g*h*i
j*k*l

コマンドをスクリプトに書いておく方法

※ コンマをすべて*に置換してね!というコマンドを適当なファイルに書いておく

mysed.txt
s/,/*/g

★ オプション f で上記のファイルを読み込み

$ sed -f mysed.txt sample.txt
a*b*c
d*e*f
g*h*i
j*k*l
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