LoginSignup
4

More than 5 years have passed since last update.

シェルスクリプト その6

Last updated at Posted at 2016-01-25

今回は前回出てきた"sed"コマンドについてのメモです。
例:$sed -e "s/abc/def/g"

・"s/abc/def/"で行の一番最初の文字列"abc"を"def"に置き換え。

・"s/abc//"で行の一番最初の文字列"abc"を削除。

・"s/^abc//"で行頭だけを文字列"abc"とマッチングすれば削除。

・"s/abc\$//"で行末だけを文字列"abc"とマッチングすれば削除。

・"s/abc/abcdef/"で文字列"def"を"abc"の後に追記。

・"s/^/def/"で文字列"def"を行頭に追記。

・"s/\$/def/"で文字列"def"を行末に追記。

・クォテーション内のドット(.)は任意の一文字で、アスタリスク(*)は直前の文字の繰り返し(0個も含む)。この2つを組み合わせた(.*)結果は行全て。

・文字列の切り取り
 -"s/abc.*//"で文字列"abc"以降を消去。
 -"s/abc.*def//"で文字列"abc"~"def"までを消去。

・大文字と小文字の入れ替え "$cat file | tr '[A-Z]' '[a-z]' > lowerfile"

・タブは""、スペースは""と表記する。

・"/abc/d"で文字列"abc"を含んだ行を削除。

・""n,ms/abc/def/g" file"でfileのn~m行目の文字列"abc"をすべて"def"に置き換え。

・""1d" file"でfileの一行目削除。

・""1,nd" file"でfileの1~m行目の削除。

・'\$d'で最終行削除。注:シングルクォート内はすべて文字と認識されるので'$'の前の'\'は必要ない。

・"sed -n 'mp' file"でfileのm行目をプリント。

・'n,mp'でn~m行目をプリント。

・'nq'で最初からn行目までプリントできるが、'q'はquitで"sed"コマンドが終了されるので続けて他の処理をできない。

・'!'をクォテーション内の処理コマンド('d'や'q')の直前に置くと逆の操作をさせる。

・"grep -n '.*'"でファイルの行すべてに表示するとき行番号をつける。

参考資料:入門UNIXシェルプログラミング 改訂第2版 第6,7章(発行所:SBクリエーティブ株式会社)

シェルスクリプト その1
シェルスクリプト その2
シェルスクリプト その3
シェルスクリプト その4
シェルスクリプト その5
シェルスクリプト その7

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
4