タグ

bashに関するyoyamaのブックマーク (5)

  • 標準入力同士の diff - Qiita

    ブログネタなんですが、こちらで公開した方が大勢の目に触れると思うので… コマンド command1 の出力結果と コマンド command2 の出力結果を diff (1) で比較したい場合、bash (1) の場合は以下の様にする事で簡単に比較できる。

    標準入力同士の diff - Qiita
  • 今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita

    はじめに 1992 年に POSIX でシェルが標準化されて以来、シェルスクリプトの数値計算に expr コマンドは使いません。expr コマンドを使って計算していたのは Bourne シェル(古い UNIX の sh)時代の話で、現在の POSIX sh (dash、bash、ksh 等)時代では数値計算に expr コマンドは不要です。今どきはシェルの機能だけで整数の計算を行うことができます。「今どき」って一体いつからだって話なわけですが……。 注意 シェルスクリプトでパフォーマンスの話をするとすぐに「他の言語で〜」という方がいますが、私はどんなことにでもシェルスクリプトを使えなんて一言も言っていません。パフォーマンスを気にしている理由は、そこが実際にシェルスクリプトのボトルネックになるポイントだからです。そもそもシェルスクリプトと一般的な言語は言語設計レベルで得意なことが違います。ユ

    今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita
  • dateコマンドで○日前の日付を取得する - hogehoge foobar Blog Style Beta

    久しぶりに仕事でbashを書きました。 『date』コマンドで○日前/○日後の日付を取得する方法で、 少しだけハマッたので、覚書として書いておきます。 Linux系の場合 オプション"--date"で"○ day(s)"(○日前の場合は"ago"を付ける)を指定する。 $ date +"%Y%m%d" 20090609 $ date +"%Y%m%d" --date "1 day" 20090610 $ date +"%Y%m%d" --date "7 days" 20090616 $ date +"%Y%m%d" --date "1 day ago" 20090608 $ date +"%Y%m%d" --date "7 days ago" 20090602 BSD系の場合 オプション"-v"で"+○d"(○日前の場合は"-")を指定する。 $ date +"%Y%m%d" 200906

    dateコマンドで○日前の日付を取得する - hogehoge foobar Blog Style Beta
  • Bashで覚えておくとよいデータ構造 - 配列 - いろいろ解析日記

    Bashで必要なデータ構造の覚書です。 目次 配列 配列を生成する。 配列にデータを追加する。 配列にデータを格納する。 配列からデータを取得する。 配列中のすべてのデータに同じ処理をする。 関連記事 配列 配列は複数件のデータを扱うためのデータ構造です。 ■配列を生成する。 配列の生成は以下のように行います。 配列の名前=() 配列の名前=("データ" "データ" "データ")配列の生成では、配列の名前を指定します。 もし、生成時にデータを格納する場合に、()内にデータを指定します。 例えば、空の配列ARRAY1を生成するには、以下のように書きます。 ARRAY1=()例をもう一つ。データを3つ格納した配列ARRAY2を生成するには、以下のように書きます。 ARRAY2=("history" "japanese" "math") ■配列にデータを追加する。 配列へのデータの追加は以下のよ

    Bashで覚えておくとよいデータ構造 - 配列 - いろいろ解析日記
  • bashで指定回数ループして綺麗な連番ファイル名を作る/sprintf - それマグで!

    bash は for ループで数値の展開ができます。 for i in {0..100};do echo $i;done; メッチャカンタン。 seq なにそれ美味しいの? コレを使い、Bashで連番ファイル名を綺麗にしたいと思った。 まずループ BASHで10回ループ for i in {0..100};\ do \ echo $i;\ done; 指定回数分ループするときは{}(カーリーブレース)で囲むのがミソ。他にもやり方はあるが,コレが覚えやすい。特にRuby使う人に優しい。 作りたいファイル名は0埋め三桁 001-100 accesslog.1.log .. accesslog.2.log accesslog.10.log .. accesslog.100.log 番号順に並ばない。Vistaなら整列するのだけれど、XPはダメ、 試しに、bashコマンドでsprintfをする。で

    bashで指定回数ループして綺麗な連番ファイル名を作る/sprintf - それマグで!
  • 1