タグ

ブックマーク / kiririmode.hatenablog.jp (3)

  • grepでは困難な、特定文字列の存在行から別の文字列が存在する行までの抽出 (Perlのflip-flop演算子の使い方) - 理系学生日記

    特定の文字列がある行から、別の特定の文字列がある行までを抽出したいということがよくあります。 これgrep等を使うと苦労する話なんですが、flip-flop演算子を使ったPerlのone-linerで可能です。 例えば昨日の記事ではgit help commitの中から--no-edit/オプションの説明を抽出しました。 これは--no-editという文字列が出てくるところから空行までを抽出すれば良い。これは以下のようにすれば可能です。 $ git help commit | perl -nle 'print if /--no-edit/ ... /^\s*$/' 解説自体に空行が混じるケースでは以下のようにすれば良いでしょう。 この例では、--cleanupという文字列が出現してから、次のオプション(-文字列形式)が出るまでを抽出しています。 $ git help commit | pe

    grepでは困難な、特定文字列の存在行から別の文字列が存在する行までの抽出 (Perlのflip-flop演算子の使い方) - 理系学生日記
  • シェルスクリプトでのtrapの使い方 - 理系学生日記

    シェルスクリプトでシグナルをトラップするには、みたいなことを考えることがあって、そういえば trap という日頃なかなか思い出されない不憫なビルトインがあることを思い出しました。trap は bash のビルトインとして存在する便利なヤツですが、忘れられがちなので、ここで一つ、trap コマンドとはどういうものかを書いてみることにしました。 trap の基 trap は、その名前の通り、シグナルを補足(trap) するためのシグナルハンドラを設定するためのビルトインです。 シェルスクリプトを長時間動かすみたいなユースケースは結構あって、別言語で実装されたバッチプログラムの起動だったり、ファイルツリーを探索して何か集計したりするとか、他システムとファイルを送受信したりです。 こういう長時間動かすケースではときどき、「あれ、意図せずシグナルを送られちゃったりしたときどうしよう」みたいなことを

    シェルスクリプトでのtrapの使い方 - 理系学生日記
    otori334
    otori334 2020/03/05
  • Macでのアプリケーションインストールの自動化 - 理系学生日記

    先述の通り、新年を迎えたことをきっかけに Mac を初期化しました。 面倒なのは、使っているソフトウェアのインストールなのですが、皆さんと同様 homebrew を使っています。 そういえばと思い立ったのですが、この homebrew で各種 CUI アプリケーションとともに AppStore で配布されているソフトウェア(例えば LINEEvernote など) も一気にインストールできることはイマイチ知られていません。というわけで、エントリではそのあたりをご紹介します。 GUI アプリケーションのインストール 野良アプリのインストール (cask) AppStore 配布のアプリケーションのインストール (mas) いちいちコマンド発行するのも面倒 (Brewfile) Brewfile のみでアプリを管理する (brew bundle cleanup --force) GUI

    Macでのアプリケーションインストールの自動化 - 理系学生日記
    otori334
    otori334 2020/01/21
  • 1