shellscript

find の結果を grep

追記(2008年5月17日(土)) コメントで以下の2つの違うやり方を教えてもらった。 $ grep -n hoge -r /path/to/directory $ find /path/to/directory | xargs grep -n hogeやり方によって効率が違ったりするのかな? 追記終わり(2008年5月17日(土)) こ…

whereis が便利

今までファイル検索には何でも 「find / -name '*hoge*'」 使えばいいやって思ってたけど、用途によってはもっと便利なコマンドがあるんだなと実感。忘れない内にメモしておく。 /usr/bin/ 以下の man ドキュメントが無い全てのプログラムを見つける % where…

find で「permission denied」を消す方法

標準エラー出力を捨てる。 % (find / -name '*hoge*') 2> /dev/null | less 参考 UNIXの部屋 コマンド検索:find (*BSD/Linux)

Shift-jis から UTF-8 への変換 シェルスクリプトメモ(4)

Cygwin 環境で書いたデータを coLinux に移したら、案の定文字化けしたので、任意のディレクトリの全ファイルの文字コードを UTF-8 にする簡単なシェルスクリプトを書いた。 入力ファイルの文字コードは指定してないので、ISO-2022-JP, SHIFT-JIS, EUC のい…

単語の出現頻度を調べる シェルスクリプトメモ(3)

単語の出現頻度を調べるには以下のようにコマンドどうしをパイプで連携させる方法がある。 $ cat somefile | tr ' ' '\n' | sort | uniq -c | sort -nr | head このワンライナーで自分がよく理解できなかったのが、tr コマンドの後に使われている sort コマ…

ログインシェルを抜き出す シェルスクリプトメモ(2)

特に、ログインシェルを抜き出して何かしたいわけじゃないけど、シェルスクリプトのメモとして残しておく。 実際にやってるのは、「ファイル中の各行を指定したセパレータでトークンに分解してやって、n番目のトークンを取り出す」という処理。 Perl や Ruby…

Cygwin上でのシェルスクリプトの改行コード

シェルスクリプトを作って、実行しようとしたところ、なにやら良くわからないエラーが発生(" : Command not found"のようなエラー)。調べたところ、改行コードが問題だったらしい。改行コードをDosの「CR LF」からUnixの「LF」に変えたら正常に実行される…

カレントディレクトリ以下の全てのファイルの文字列を置換して上書き保存する シェルスクリプトメモ(1)

find 検索開始ディレクトリ オプション -exec perl -p -i.bak -e 's/検索文字列/置換文字列/g' {} \; 使用例 find . -type f -exec perl -p -i -e 's/<html>/<html lang="ja">/g' {} \; Perlの各オプションの意味 項目名 意味 -p 入力ファイルから1行づつ取り出して処理し、表示す</html></html>…