タグ

bashに関するagxのブックマーク (12)

  • Bashを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 - いろいろ解析日記

    Bashでのアルゴリズムの書き方の覚書です。 目次 説明に使用するデータ構造 抽出 ソート Bashでの配列のソート ソートの例(五十音順) ソートの例(数値順) 結合 集計 関連記事 説明に使用するデータ構造 アルゴリズムの説明のために、以下のようなパイプ区切り文字列の配列を使います。 COUNTRIES=("${COUNTRIES[@]}" "日|JPY|127156000") COUNTRIES=("${COUNTRIES[@]}" "フランス|EUR|65073482") COUNTRIES=("${COUNTRIES[@]}" "スペイン|EUR|44904000") COUNTRIES=("${COUNTRIES[@]}" "ロシア|RUB|141903979") COUNTRIES=("${COUNTRIES[@]}" "ベトナム|VND|84238000") COUNTR

    Bashを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 - いろいろ解析日記
    agx
    agx 2009/11/05
  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

    タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。

    agx
    agx 2008/02/26
    xargs の使い方。ファイル名にスペースがある場合と、最後の引数などが決まっている場合
  • Big Sky :: findとxargsは便利だけど意外と実行したい処理はsortした結果だったりする場合が多い

    私の場合、xargsの引数がオーバーする程のファイルを扱う時は、少し怖いので一度別のディレクトリに移動してから削除するなりをやってます。 また、数十個の場合ならばfindだけでやってしまいますね。その方が思考が止まらないし...。 ただ、findとxargsの組み合わせで結構多いのが さらにその中から間引きたい 実行は並び替えた結果で行いたい といった場合が少なからずあるのです。 例えばYYYYMMDD等といった日付形式のファイル名で散乱しているファイルを日付通りに処理したい。 と言った場合、やはりsortやgrepのお世話になるのが楽ですよね。 sortやgrepを使う場合、findで-print0した結果ではフィルタフィルタ実行する事が出来ません。 こんな場合には、findでは-print0せずに find . -name "*.txt" | grep '/[0-9]¥{8¥}¥.tx

    Big Sky :: findとxargsは便利だけど意外と実行したい処理はsortした結果だったりする場合が多い
    agx
    agx 2008/02/26
    スペースを含むとき、tr \\n \\0 とすることで、xargs -0 でうまく動かすことができる
  • 無精で短気で傲慢なプログラマ find には sh!

    ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック% find . -name '*~' -exec rm {} \; 404 Blog Not Found:勝手に添削 - find(1)% find . -type f -name '*~' | xargs rm % find . -type f -name '*~' | perl -nle unlink わたしなら% find . -type f -name '*~' | sed 's/^/rm /'で確認し、OK なら% find . -type f -name '*~' | sed 's/^/rm /' | shで消します。 いまどき fork/exec rm のオーバーヘッドがどれほどのものか。 xargs を使うとき、rm が 1回だけ実行されるときと、ARG_MAX を超えたときに rm

  • Open Tech Press | シェルスクリプトで引数をパースする

    2007年7月20日10:10 Carl-Albing、JP-Vossen、Cameron-Newham(2007年7月17日(火)) 自作のbashのシェルスクリプトで何らかのオプション、すなわちスクリプトの動作を変更するためのフラグを使えるようにしたいとしよう。このような場合、${#} を使って与えられた引数の個数を取得したり、${1:0:1}を使って最初の引数の最初の文字が「-」かどうかを判定したりするなど、直接自分でパースすることもできるが、自分でパースする場合には、与えられたオプションが何であるかとか、引数を取っているかどうかとかを確認するためにif/thenやcaseなどを使ったコードを自分でさらに書き足す必要があるだろう。 しかしそうしたところで、例えば、続けてその後に引数を指定する必要のあるオプションに対して必要な引数をユーザが与えなかった場合、あなたの自作のルーチンはどう

    Open Tech Press | シェルスクリプトで引数をパースする
    agx
    agx 2007/09/26
    getoptsを使う
  • シェルスクリプトで標準入力を加工する際の注意点 : DSAS開発者の部屋

    シェルスクリプトで標準入力を加工する際に若干ハマリかけたので、今回はそのお話をしたいと思います。 みなさんのシェルスクリプトライフの一助になれば幸いです。 標準入力を加工するシェル関数、例えば、 入力を文とするメールを送るシェル関数 ログを入力として受け取り、集計や解析をするシェル関数 を書く場合、みなさんどういう風に書いているでしょうか。 私は今までこんな風に書いていました… send_mail() { from='sender@example.org' to='receiver@example.org' { echo "From: ${from}" echo "To: ${to}" echo "Subject: test" echo cat - } | qmail-inject -A -f${from} } make_mail_body | send_mail これの何が問題かという

    シェルスクリプトで標準入力を加工する際の注意点 : DSAS開発者の部屋
    agx
    agx 2007/07/14
  • Open Tech Press | ハウツー:Vimをbash用IDEとして利用する

    Vimはそのままでもシェルプログラミング用の非常に優れたエディタだが、ほんの少し調整するだけで、スクリプトを書くための格的なIDEに変身もする。Vimの調整は自分で行なうことも可能だが、Fritz Mehner氏によるBash Supportプラグインをインストールすれば手軽に行なうことができる。 Bash Supportをインストールするには、zipアーカイブをダウンロードして ~/.vimディレクトリにコピーし、アーカイブを展開する。また、~/.vimrcファイルの中にいくつかの個人情報を付け加えておくと便利なので、~/.vimrcファイルを開いて以下のような3行を追加しよう。 let g:BASH_AuthorName = 'Your Name' let g:BASH_Email = 'my@email.com' let g:BASH_Company = 'Company Name

    Open Tech Press | ハウツー:Vimをbash用IDEとして利用する
    agx
    agx 2007/06/16
  • bashというかreadlineの補完展開 - (ひ)メモ

    カレントディレクトリに↓なファイル/ディレクトリがあるときに、 $ ls -Ftr foo baz bar quux/ grault/ corge/"\C-x*" (glob-expand-word) を打鍵。 $ ls * ↓ $ ls bar baz corge foo grault quux $ ls b* ↓ $ ls bar baz $ ls */ ↓ $ ls corge/ grault/ quux/"\M-{" (complete-into-braces) を打鍵。 $ ls ↓ $ ls {ba{r,z},corge,foo,grault,quux} $ ls b ↓ $ ls ba{r,z}

    bashというかreadlineの補完展開 - (ひ)メモ
    agx
    agx 2007/05/26
    C-x * や M-{ によって、補完展開を表示する。
  • http://www.netfort.gr.jp/~tomokuni/lms/shell/text/shell.txt

    agx
    agx 2007/04/26
  • bash - MacWiki

    このページの最終更新日時は 2018年10月31日 (水) 02:33 です。 このページは 35,264 回アクセスされました。 特に記載がない限り、内容はPublic Domainのライセンスで利用できます。 プライバシー・ポリシー MacWikiについて 免責事項

    agx
    agx 2007/01/24
  • bash,awk,sed - スキルアップ輪講

    参考文献 † # Web サイトのことをやたらと HP という人がいますが,HP は Hewlett-Packard のことです. 非常に有益です. 入門 UNIX シェルプログラミング UNIX の部屋 awk manual sed manual 正規表現メモ Cyberam-シェルスクリプト 吉田淳「シェル&シェルスクリプト」, 日経 Linux, 2004/4- 森島直人「シェルの魔術」, UNIX MAGAZINE, 2004/11- man コマンド ↑ bash スクリプトの書き方 † スクリプトファイルの名前は何でも良いが,慣例として拡張子は .sh とする. スクリプトファイルは,必ず以下の行で書き始める. #!/bin/bash なお,/bin/bash とは,bash コマンドへのフルパスである.Linux オペレーティングシステムでは /bin 以下にある sh は

    agx
    agx 2007/01/11
  • Omicron bash

    bash Bourne Agein SHell 家 BASH with Debugger and Improved Debug Support and Error Handling わざわざ覚える必要はないと思うけど,知ってると便利な bash スクリプト. bash 例解 (IBM dW) 404 Not Foundになっちゃったな... 第1回 (2000-07-14) Bourneシェルの生まれ変わり(bash)による初歩のプログラミング 第2回 (2000-07-14) bashによる初歩のプログラミングの続編 第3回 (2000-07-14) ebuild システムの探訪 ebuildGentooLinux の一部らしい. bash 超プログラム術 杉浦康仁(三木淑生)氏による文書. BASH Programming - Introduction HOW-TO

    agx
    agx 2007/01/10
  • 1