memorandum

IT技術の習得を記録します

CSVファイルの中身を置換する sed

sedは与えられた文字列を,ルールに従って変換するコマンド
置換したいと思って調べたら、かなり色々できるようです

とりあえずよく使用するであろうCSVの中身の置換を覚えてみる

sed -e s/置換条件/置換文字/

list.csvの株式会社を(株)にしてlist_new.csvに書き出す

sed -e "s/株式会社/(株)/g" list.csv > list_new.csv

list.csvの株式会社を(株)にして上書きする

sed -i -e "s/株式会社/(株)/g" list.csv


さらに詳しく、これだけでも結構覚えごたえがある・・・

sed -e "s/aaaa/bbbb/"       # 行で最初に出てきた'aaaa'を'bbbb'に置換
sed -e "s/aaaa/bbbb/g"      # 入力の全行に渡って置換  G = Global
sed -e "s/^aaaa/bbbb/"      # 行頭(^)に'aaaa'のもの  aaaabbbb => bbbbbbbb
sed -e "s/aaaa\$/bbbb/"     # 行末($)に'aaaa'のもの。$は\でescape  bbbbaaaa => bbbbbbbb
sed -e "s/~/bbbb/"          # 行頭に'bbbb'を追加   aaaa  => bbbbaaaa
sed -e "s/\$/bbbb/"         # 行末に'bbbb'を追加  aaaa => aaaabbbb
sed -e "s/.*/abcd/"         # すべての行を'abcd'に置換 
sed -e "s/aa.*bb//"         # aa*bbを削除