タグ

コマンドに関するharusadaのブックマーク (4)

  • 複数ファイル内文字列を一括置換する方法

    Linuxを使っている場合の「複数ファイル内文字列を一括で置換する方法」のメモです。 sedとforコマンドを使って一気に処理させます。 変換元ファイルをバックアップファイル(.bak)にコピーし、置換処理後のファイルを変換元ファイルに上書きします。 for FILE in *.txt; do cp $FILE $FILE.bak; sed -e "s/置換前文字列/置換後文字列/g" $FILE.bak > $FILE; done 拡張子を変えればtxtファイルだけではなく、htmlファイルやphpファイルなどにも対応できます。 もしも予定していた通りに変換できなかった場合は、.bakファイルから元に戻します。 予定していた通りに変換できたら、.bakファイルを削除すれば完了です。 特定の行頭文字列から始まる行を処理したい場合などは、正規表現を使って for FILE in *.txt;

    複数ファイル内文字列を一括置換する方法
  • findでファイル検索入門 - builder by ZDNet Japan

    意外と知られていないようだが、"find"はLinuxに含まれている珠玉のツールだ。findでは、名前やファイルサイズ、更新日など多数の条件でファイルを検索することができる。findを用いることで、今まで時間をかけて手作業で探さなければならなかったファイルを、簡単に検索できるようになるだろう。 最も単純な使い方から説明しよう。findを用いてシステム内にあるすべてのファイルを表示するには、以下のように入力する。 $ find / このように入力すると、すべてのファイルの一覧が表示される。特定のファイル名で検索したい場合には、次のように行う。 $ find / -name passwd /usr/bin/passwd /usr/sbin/passwd ... また、passwdという名前で、かつパーミッションが0700のファイルを検索したい場合は、次のように入力すればよい。 $ find /

  • void GraphicWizardsLair( void ); //

  • 浮浪プログラマの始末書:[Unix] 全てのサブディレクトリをgrep

    grepの検索対象のファイルが一つのディレクトリにまとまっているのなら、 grep hoge *.c で簡単に検索できるんですが、複数のディレクトリに分散している中から探すのに困ってしまいました。 複数ディレクトに分かれていても、ディレクトリの階層がすべて同レベルならば、 grep hoge */*.c ってできるんですが、階層がまちまちの場合にはこれも使えない。 ということで、findコマンドとの合わせ技を教えてもらいました。 find . -name '*.c' | xargs grep hoge あるいは、 find . -name '*.c' -exec grep hoge {} /dev/null \; grepの引数に"/dev/null"が付いているのは、対象ファイルが1つの場合にもファイル名を表示させるため。 【追記】コメントでgrepのみでできる方法を教えて貰いました(f

  • 1