タグ

パイプラインとlinuxに関するakaneharaのブックマーク (3)

  • パイプラインに横槍 - 日々之迷歩

    シェル芸と言えば、一糸乱れぬ一筋のストリームが流れる事に心奪われ、あな美しかなと心躍らせることこそ醍醐味かと存じます。だがしかし人間たるもの、完璧なものこそ壊したがる一面も否定出来ません。 ということで、シェルのパイプラインに横槍を入れざるを得ない心境になったのもあり、現状理解していることをまとめてみました。大きく4パターンあります。 1. 文字列やファイルの乱入 1.1. 文字列乱入 シェルの ( ) おまとめ記法とcatの組み合わせで、文字列を混ぜ込むことが出来ます。 $ seq 2 | (echo 'Header'; cat; echo 'Footer') Header 1 2 Footer bcコマンドで2進数表示させたい時などに使っています。 $ seq 5 | (echo 'obase=2'; cat) | bc 1 10 11 100 101 1.2. ファイル乱入 catで

    パイプラインに横槍 - 日々之迷歩
  • mkfifo と tee で複数の入力・出力のパイプ - きつねたぬきだし

    はじめに UNIX では、ほとんどありとあらゆるものをファイルとして扱うことができる。 tee コマンドについて書いてある他ブログ記事を読むと、 「ファイルに書きつつ標準出力に出す」というような 画面上でのログ確認での使い方のみ書いている記事が多い。 もっと広義の「ファイル」には「FIFO」も含む。 FIFO とは名前付きのパイプであり、ファイルとほぼ同じインターフェイスを利用する。 内容 mkfifo と組み合わせて、 2 つの出力を持つパイプを作ってみる。 $ mkfifo input1 $ mkfifo output1 $ mkfifo output2 $ tail -f input1 | tee output1 output2 2>&1 > /dev/null & このようにすると、 別シェルで立ち上げた $ echo `date` > input1 が、 output1, out

    mkfifo と tee で複数の入力・出力のパイプ - きつねたぬきだし
  • シェルのリダイレクトの補遺 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日書いた「シェルのリダイレクトを『こわいものなし』というくらい完全に理解しよう」に、随分とブックマークやトラックバックをいただきました。それらのフィードバックを拝見して、僕の説明にいたらない所があったと思いますので、ここで補足します。 コマンド実行単位≒simple command パイプ記号「|」や逐次実行の記号「;」を含んだ長いコマンドラインも、1つのコマンドとその引数、それとリダイレクト指定からなる“成分”に分解できます。こういった成分をなんと呼ぶか僕は知らないので、仮に「コマンド実行単位」とでも呼びましょう。 シェルの構文(grammar)的概念としてsimple commandというものがあります。ここで言ったコマンド実行単位は、ほぼsimple commandだと言っていいでしょう。「ほぼ」と付けたのは次の理由からです; 「コマンド実行単位」は、1つのプロセスを起動することを

    シェルのリダイレクトの補遺 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 1