タグ

ブックマーク / open-groove.net (3)

  • sedコマンドでファイルを上書き編集 – OpenGroove

    標題のテーマ、今までリダイレクト使ってまどろっこしいことしていた。 # sed -e "s/AAA/ZZZ/g" INFILE.txt > OUTFILE.txt # cp OUTFILE.txt INFILE.txt つまり、一度OUTFILE.txtに置換内容を吐き出してから、OUTFILE.txtをオリジナルのINFILE.txtに反映、とするやり方。しかし!-iオプションを使えば断然スマートにできることを今さら知る。 # sed -i -e "s/AAA/ZZZ/g" INFILE.txt これだけで、対象ファイルが上書き編集される。これにはちょっと感動。 以下のようにすればバックアップファイルもとってくれる。-iとダブルクォーテーションの間は詰める。 # sed -i".org" -e "s/AAA/ZZZ/g" INFILE.txt これをどういう時に使いたいかというと、通常の

  • ディレクトリのシンボリックリンクでハマったこと – OpenGroove

    ファイルのシンボリックリンク作成でハマった記憶はあまりないが、ディレクトリでつまづいた。 例えば、リンク元と同名のディレクトリが存在しない状態で以下のコマンド実行、ならうまくいく。 $ ln -s /usr/local/mysql/logs/ /backup/mysql/logs もしくは、/backup/mysql/がカレントディレクトリとして。 $ ln -s /usr/local/mysql/logs/ logs が、もし同名のディレクトリが存在する状態で上記コマンドを実行すると、/backup/mysql/logs/ ディレクトリの配下に/usr/local/mysql/logs/のシンボリックリンクができてしまう。 ディレクトリのシンボリックリンクは「/(スラッシュ)」のありなしで挙動が全然違うので、要注意。 例えば、”ln -s /usr/local/mysql/logs/ /

  • シェル変数展開のまとめ – OpenGroove

    シェルにおける変数展開について。 変数展開{ }(ブレース)の中で各種文学列演算子を使い、変数の存在や値をチェック することができる。-,=,?,+演算子使用時に「:」を付加していれば値がヌルかどうか をチェックする。 省略された場合、値がヌルかどうかのチェックはせず、評価する変数が定義されて いるかどうかのみチェックする。 ${var:-str} シェル変数が未設定か値がヌルの場合、指定した値を返す。 この時変数varに値は代入されない。 $ echo ${animal} ←変数が未設定 $ echo ${animal:-cat} cat $ echo $animal ←変数は設定されていない ${var:=str} シェル変数が未設定か値がヌルの場合に指定した値を返し、さらに変数varに値が代入される。 $ echo $animal ←変数が未設定 $ echo ${animal:=d

    seapig_dolphin
    seapig_dolphin 2014/07/17
    あとで
  • 1