viがなくてもあわてない


Docker便利ですよね。いざコンテナで作業しようとしたとき、

$ vi
bash: vi: command not found

あっ vi がない!ってなりませんか?

そんなときどうしましょう。インストールする?とんでもない!
そんなあなたは今すぐ隣のvimmerと距離を置きましょう。

正解はemacsを使

テキストファイルのちょっとした編集を行うテクニックです。

echoとリダイレクト

標準出力を>でファイルに上書き、>>でファイルに追記します。

$ echo "文字列" > file.txt
$ echo "最終行に追記" >> file.txt

cat

catに標準入力-を渡すと複数行を書き込み。Ctl+Cで抜けます。

$ cat - > file.txt
a
b
c
^C

sed

sedは置換コマンドのイメージが強いですが、いろいろできます。そしてviはなくてもsedはたいていあります。

表示

$ sed -n '3p' file.txt # 3行目だけ表示

削除

$ sed -i -e '3d' file.txt # 3行目を削除

挿入

$ sed -i -e '3i hoge' file.txt # 3行目に挿入

置換

$ sed -i -e 's/hoge/fuga/g' file.txt # すべてのhogeをfugaに置換
$ sed -i -e '3 s/hoge/fuga/g' file.txt # 3行目だけ置換