タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとUnixとdeferredに関するagwのブックマーク (62)

  • Decoded: GNU coreutils – MaiZure's Projects

    Helpful background for code reading The GNU coreutils has its foibles. Many of these utilities are approaching 30 years old and include revisions by many people over the years. Here are some things to keep in mind when reading the code: Tiny programs - These utilities are small, (mostly) single-source file programs designed to do one thing and do it well. They are not designed for long life or to

  • sedで改行を含む複数行の文字列を置換

    sedは読み込んだ行の行末にある改行を削除してパターンスペースと呼ばれるバッファに格納したうえでテキスト処理をし、最後にパターンスペースの内容に改行をつけて出力する。。 だから改行を含む文字列にマッチさせる指定が非常にややこしい。 sedで改行を含む複数行を指定して一気に置換をやろうと一晩なんやかんややってみたけど、朝になったからあきらめてまったくスマートじゃない別な方法で強引に終わらせた。 :loop N $!b loop s/\n//g 一度ファイル内の改行コードを全削除 そのあとに別スクリプトのsedで複数行じゃなくなったファイル内容を文字列指定で置換して、元通り改行コードを入れる置換する。 改行コードを入れる置換は \の後に実際の改行を入れるでok かなりダサい方法だけど一応出力したい結果は得られるから今はいいことにしておく。 sed と改行(1) 入力にない改行の出力入力にない改

    sedで改行を含む複数行の文字列を置換
  • sortコマンド、基本と応用とワナ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    sortコマンド、基本と応用とワナ - Qiita
  • AtCoderに登録したら解くべき精選過去問 10 問を bash で解いてみた - Qiita

    はじめに 2015 年末に bash で始める競技プログラミング(?)という記事をネタ半分で書いたのですが、どういうわけか百花繚乱!なないろ言語で競技プログラミングをする資料まとめ(@drken)の中で入門資料に認定されてしまったので、ひとつ釣られたつもりになって AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~にある問題をすべて bash で解きました。実際に解いてみると bash の良い点も悪い点もよくわかるセットだったので、私の解答をひととおり解説しようかと思います。 なお、この記事では、読者と対して以下のことを想定します。 とりあげる問題についてはすべて解法を知っている シェルスクリプトをある程度書くことができる よく使われるコマンド(grep とか sed とか)もわかっている bash の文法については適宜説明を入れますが、必要に

    AtCoderに登録したら解くべき精選過去問 10 問を bash で解いてみた - Qiita
  • dcを使ってみる。 - ここにタイトルを入力|

    個人的お気に入りツールの一つ。dc。 逆ポーランド記法(RPN)の計算機。 linuxなら大体さいしょっから入ってるツール。 パッケージで言うとbc*1。 プログラミング序論の課題でRPNの話が出たので、ついでだし使い方でもまとめて見ようと思う。 とりあえずRPNがなんだ、ってのは適当にググってくださいな。 あくまでdcの使い方。 計算する とりあえず、計算したいだけなら $ dc 1 # 1をpushする 2 # 2をpushする + # 2,1をpopして、和をpushする p # topを出力する(スタックはいじらない。) 3 q # 終了する(quit) $明示的に出力する様にしないと何も結果を返さないので注意。 負数の扱い マイナス("-")は演算子として定義されているのでそのまま入力はできないらしい。 -1 # -と1として解釈される。のでスタックが空だとエラーになる dc:

    dcを使ってみる。 - ここにタイトルを入力|
  • Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね

    Bashでスクリプトを書く際によく自分が使っている小技や関数などです。 またBashでは他のプログラミング言語以上に$や:などの記号の使い方が独特でググラビリティが低いので、基文法などもチートシートとしてまとめておきます。 基文法 変数と配列 制御構文 while for-in if - elif - else if文のone-liner 文字列比較 文字列が等しい (=) 文字列が等しくない (!=) 空文字、文字列長が0 (-z) 空文字でない、文字列長が0でない (-n) 数値比較 数値が等しい (-eq) 数値が等しくない (-ne) 数値がより小さい (-lt) 数値がより大きい (-gt) ファイルの判定 存在する (-e) ファイルである (-f) ディレクトリである (-d) シンボリックリンクである (-L) 関数 便利なスニペット 実行スクリプトがあるディレクトリを

    Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね
  • lessでzipファイルの中身が見えるわけ 〜LESSOPENとlesspipe.sh〜 - カタカタブログ

    前回、zipファイルを展開せず中身を見るにはlessコマンドを使うのがよいという記事を書いたが、そもそもなぜlessでzipファイルの中が見れるのか調べてみた。 ※前回記事: Linuxzipファイルの中身を展開せずに見るにはlessがおすすめ - カタカタブログ lessコマンドの仕組み どうやら、LESSOPENという環境変数にlesspipe.shというシェルスクリプトが定義されており、これがless実行対象のファイルに対して事前に処理が入る。 $ env | grep LESS LESSOPEN=||/usr/bin/lesspipe.sh %s つまり、targetというファイルに対してlessコマンドを打つ場合、 $ less target以下のような処理が内部で行われているようなイメージ。 $ lesspipe.sh target | lessそして、lesspipe.sh

    lessでzipファイルの中身が見えるわけ 〜LESSOPENとlesspipe.sh〜 - カタカタブログ
  • sedがシンボリックリンクを破壊する話|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    sedがシンボリックリンクを破壊する話 こんにちは、mizuno_asです。 sedは便利ですよね。自動化する際や手順書を作る際、人間が対話的にやらなければならない操作をコマンドで自動化できるのはすばらしいです。 sedには入力元ファイルを上書きする-iオプションが存在します。みなさんも設定ファイルをコマンドラインから書き換えるような際に、よく使うのではないでしょうか。ところがsedの-iオプションはノーケアで使うと、シンボリックリンクを破壊することはご存知でしょうか? Photo via Visualhunt 例として以下のように、テキストファイルにシンボリックリンクを張っておきます。 $ echo hoge > test.txt $ ln -s test.txt link $ ls -l 合計 4 lrwxrwxrwx 1 h-mizuno h-mizuno 8 1月 15 11:57

    sedがシンボリックリンクを破壊する話|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
  • 何もしない組み込みコマンド ":" (コロン)の使い道

    Bash でシェルスクリプトを勉強していくと出会うのが : (コロン)という名前の組み込みコマンド。このコマンドは何もしないコマンドです。 こんなコマンドの存在は不思議だなと思う反面、C言語にも void という型があったり(関数のような形で存在するのは JavaScript とかですね)、LaTeX にも \relax があったり、何もしない命令というものは機械語の NOP からある普通のものです。 この Bash の : の使い道についてまとめてみました。 何か書かなければならないところに仮置きする 例えば「ここに制御構造を置くんだけど、この節に入るものは後で書くんだけどな〜」といった場合、制御構造の節の中に何も書かないと Bash は構文エラーとなります。

    何もしない組み込みコマンド ":" (コロン)の使い道
  • シェル芸力向上のため moreutils を一通り試してみた - Qiita

    $ rpm -qi moreutils Name : moreutils Version : 0.49 Release : 2.el7 Architecture: x86_64 Install Date: Fri 29 May 2015 06:34:50 PM JST Group : Applications/System Size : 155340 License : GPLv2 Signature : RSA/SHA256, Tue 04 Mar 2014 12:35:02 PM JST, Key ID 6a2faea2352c64e5 Source RPM : moreutils-0.49-2.el7.src.rpm Build Date : Wed 26 Feb 2014 07:58:44 PM JST Build Host : buildvm-21.phx2.fedoraproj

    シェル芸力向上のため moreutils を一通り試してみた - Qiita
  • Bashでstdout/stderr/exit codeをキャプチャ - Folioscope

    Shell Script Advent Calendar 2015 7日目の記事です。 BashのちょっとしたTipsです。 Bashに限らないかも知れませんが、検証環境がBashしかありませんでした。 問題 Bashで $(command) と書くと、commandがサブシェルで実行され、 stdout(標準出力)を変数に格納することができます. hoge_value=$(echo 'hoge') # hoge_value => "hoge" ただしstderr(標準エラー出力)はキャプチャできません。 いま、stdoutとstderrへ出力し、100を返す関数があるとします。 out_err_and_exit() { echo "This is stdout" echo "This \\is \"tricky 'stdout" echo "This is stderr" >&2 ech

    Bashでstdout/stderr/exit codeをキャプチャ - Folioscope
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • vimでバイナリを表示し、値を変更したい - rderaログ

    バイナリファイルを表示させることなら、 $ hexdump -C picture.png 00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR| 00000010 00 00 00 0a 00 00 00 0f 08 02 00 00 00 52 9d c9 |.............R.?|とか、 $ xxd picture.png 0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452 .PNG........IHDR 0000010: 0000 000a 0000 000f 0802 0000 0052 9dc9 .............R..みたいに、hexdumpコマンドとかxxdコマンド(この記事を書いてて知った)を使えばできる。 でも、

    vimでバイナリを表示し、値を変更したい - rderaログ
  • シェルスクリプトで一行ずつ読込む while read line 4パターン - eTuts+ Server Tutorial

    Bash でコマンドの実行結果、またはファイルの中身を一行ずつ読み込むためには、read コマンドを使います。 具体的には、while ループを回しながら、read によって読み込まれたデータを、一行ずつ line という変数に格納する形になります。 コマンドの実行結果、またはファイルの中身が最終行まで完全に読み込まれた時点でループから抜けることになります。 というわけで、while read line セットで覚えると良くて、while read line をより効率的に使うために、Here Document (ヒアドキュメント) と一緒に使うことが多いです。 Unix 系、Linux 系、OSX、BSD 等、シェルが使える環境上でスクリプト書くときにパターン化していつでも参考にして状況に応じて使えるようにまとめてみました。

    シェルスクリプトで一行ずつ読込む while read line 4パターン - eTuts+ Server Tutorial
  • シェルスクリプト最大の罠、while問題

    シェルスクリプト最大の罠:while問題 前回はシェルスクリプトプログラミングのコツの1つとして「アット・ア・グランス性」を紹介した。紹介の中でwhileが引き起こしやすい問題について触れたが、前回の説明だけではよく分からなかった方もいると思う。 今回はこの「while問題」に焦点を当て、シェルスクリプトプログラミングで最もはまりやすい問題を掘り下げて説明する。 whileとパイプの組み合わせで問題発生 次のシェルスクリプトを見てほしい。実行結果を予測してほしいのだが、おそらくほとんどの方が「標準出力にLinuxが出力される」と答えるだろう。

    シェルスクリプト最大の罠、while問題
  • xargsメモ - ぱせらんメモ

    xargsはよくfindと組み合わせて一括処理したりするのに使うけど、失敗すると大ダメージを受けるのでお勉強。 プログラムを指定しないとecho xargsにプログラムを指定しないとechoが使われるのでどんな感じに渡されるのか確認できる。 $ ls -l total 0 -rw-r--r-- 1 pasela staff 0B 1 22 17:11 foo -rw-r--r-- 1 pasela staff 0B 1 22 17:11 bar -rw-r--r-- 1 pasela staff 0B 1 22 17:11 baz $ ls | xargs foo bar baz NUL(\0)区切りで受ける xargsはデフォルトではホワイトスペースで区切るので、たとえば"Foo Bar"というような空白を含むファイルがあるときに普通に実行すると残念なことになる。 $ ls -l tot

    xargsメモ - ぱせらんメモ
  • grepの-lオプションと-Lオプション - 気ままなブログ

    grepの-lオプションと-Lオプション。マニュアルを見ると、それぞれ以下のように説明されている。 -l, --files-with-matches 通常の出力はしません。その代わりに、grepを普通に実行した際に、何らかの検索結果を表示する ような入力ファイルの名前を列挙します (訳注: すなわち、-lオプションを指定すると、-vオプシ ョンを同時に指定しない場合は、パターンにマッチする文字列を含む行が存在するファイルの名前 を列挙するということです)。 個々のファイルに対する走査は、最初のマッチで終了します。 (-l オプションは POSIX で規定されています) -L, --files-without-match 通常の出力はしません。その代わりに、grepを普通に実行した際に、何の検索結果も表示しないよ うな入力ファイルの名前を列挙します (訳注: すなわち、-Lオプションを指定す

    grepの-lオプションと-Lオプション - 気ままなブログ
  • 自己解凍式バイナリの作り方 - Qiita

    自己解凍式のバイナリって? 身近な例で言うとオラクルがJAVAの配布使ってるような foobar.binというような.binサフィックスの付いているパッケージングされた実行ファイルのことです。伝統的な./configure && make && make install式のtarball形式のパッケージとは違って一つの実行ファイルの中にインストールスクリプトとインストールするデータを含めることができです。 利点 ワンクリックで実行可能。 いちいちtar xfで解凍とか./configureを実行しなくていい。 設定ファイル(.vimrcなど)等のリソースファイルをそのまま実行ファイルの中に埋め込める。 仕組み 仕組みは至って単純で、リソースファイルをアーカイブしたものの先頭にインストールスクリプトは結合させて一つにまとめただけです。 作り方 リソースファイルをtarコマンドでアーカイブする

    自己解凍式バイナリの作り方 - Qiita
  • 逆順出力 tac と tail -r - Qiita

    しかし実は難点があり、tac は Linux(GNU coreutils)にしかないことです。つまり Mac では使えません。その代わり、tail -r で代用できます。tail はファイル末尾から数行を正順で出力するコマンドですが、-r(reverse)フラグによってそれを反転、要するに逆順に出力させることができます。しかし、これまた不幸なことに、BSD 系の tail でしか使用できません。Linux には -r フラグがないのです。つまり、Linux では使えません。 Linux では tac(tail -r は使えない) Mac では tail -r(tac は使えない) ということは、ポータブルなシェルスクリプトが書けません。which などで条件分岐すれば書けなくもないですが、どちらも使えない状況ではどうしようもありません。

    逆順出力 tac と tail -r - Qiita
  • bashで覚えておきたいショートカットキー(キーバインド) | 俺的備忘録 〜なんかいろいろ〜

    Linuxでデフォルトのログインシェルといえばbash。sshで接続するにしても、bashは必ず使うものだ。 今回は、そんなbashで利用できるショートカットキー(キーバインド)で覚えておくと便利なものをピックアップしてみた。 1.カーソル移動系 カーソルを移動する際に便利なショートカットキー。 こうしてみると、意外と知らなかったショートカットキーがあったりする。 コマンド 機能