sed

文字列を置換します。 とても便利なコマンドで、様々な所で利用します。 文字列の置換だけでなく、新たな行を追加したり、削除したり出来ます。

NAME
     sed -- stream editor

SYNOPSIS
     sed [-Ealn] command [file ...]
     sed [-Ealn] [-e command] [-f command_file] [-i extension] [file ...]

github

  • githubのjupyter notebook形式のファイルはこちら

google colaboratory

  • google colaboratory で実行する場合はこちら

環境

筆者のOSはmacOSです。LinuxやUnixのコマンドとはオプションが異なります。

実際に動かす際は先頭の!や先頭行の%%bashは無視してください。

!sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.6
BuildVersion:	18G2022
!bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.

使用例

基本的には

sed s/before/after/g <FILE>

でファイル内のbeforeという文字列をafterに置換します。

sed -ei s/before/after/g <FILE>

というeiオプションでファイルを上書きします。MACでなければiオプションで上書きできます。最後のgはファイル内のすべてbeforeに対して置換を行います。なければ最初に一致する最初のbeforeだけ置換します。

%%bash
echo "ファイルの準備をします。"
echo "=== example : before ===" > temp
cat temp
sed -ie "s/before/after/g" temp
cat temp
ファイルの準備をします。
=== example : before ===
=== example : after ===

代表的なオプション

  • e
  • i