タグ

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

  • 関連タグはありません

タグの絞り込みを解除

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

  • 逆引きUNIXコマンド/sedで指定した行を削除する方法 - Linuxと過ごす

    sedコマンドで先頭から何行を削除する† 以下の書式で指定行を削除することができます。 sed -e '開始行,削除行d' ファイル名 または cat ファイル名 | sed -e '開始行,削除行d' 実行結果 1行目から10行目まで削除されています。 $ sed -e '1,10d' text.txt 11 12 13 14 15 16 17 18 19 20 ↑ sedコマンドで指定行から指定行までを削除する† 上記と同じで開始行を指定することにより範囲指定できます。 sed -e '開始行,削除行d' ファイル名 または cat ファイル名 | sed -e '開始行,削除行d' 実行結果 5行目から15行目から最終行まで削除されています。 $ cat text.txt | sed -e '5,15d' 1 2 3 4 16 17 18 19 20 ↑

  • シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌

    シェルスクリプトの中で、スペース区切りもしくはタブ区切りのレコードを扱うことがよくあると思います。 たとえば、前回のエントリ「AWS CLIとjqを使って、AWSのELBボリュームがアタッチされているEC2インスタンス名を出力するワンライナーを書いた - 双六工場日誌」のスクリプトの出力は以下のようになります。 i-ec56a9f5 vol-07d00601 servername i-ec56a9f5 vol-8f550991 servername このようなレコードの特定の列を取り出して、処理する際にどうするのが効率的か、というのがこのエントリのお題です。 非常に古い話題なので、昔からシェルスクリプトを書いている人には自明な話ではありますが、最近、シェルの標準機能の話を聞く機会がなく、失われつつある技術になってきている気がしているので、改めて確認ということで。 例として挙げたレコードから

    シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌
  • cdの引数を絶対パスにしてコマンドヒストリに残す - ももいろテクノロジー

    cdの引数が相対パスのままコマンドヒストリに残って便利な例が思いつかないので、絶対パスでコマンドヒストリに残すようにする。 具体的には、以下のシェル関数を.bashrcに書く。 if [[ -n "$PS1" ]]; then cd() { command cd "$@" local s=$? if [[ ($s -eq 0) && (${#FUNCNAME[*]} -eq 1) ]]; then history -s cd $(printf "%q" "$PWD") fi return $s } fi いくつかの重要なポイントを以下に記す。 cdの定義を上書きしているが、このような場合中で普通にcdを呼ぶと再帰してしまうためcommand組み込みコマンドを使う。 "$@"の代わりに"$1"を使うことはできない。cdを引数なしで呼んだときホームディレクトリに移動しなくなってしまう。 cdの

    cdの引数を絶対パスにしてコマンドヒストリに残す - ももいろテクノロジー
  • 標準コマンドから乗り換えよう!より良いLinuxコマンドラインユーティリティー11選 | 俺的備忘録 〜なんかいろいろ〜

    Linuxの標準コマンドは強力なものではあるが、実際に人間が使う際にわかりやすいか、というと十分ではない。 そこで、今回はLinuxの標準コマンドから乗り換える事が可能なコマンドラインユーティリティーを調査、整理してまとめてみることにした。 1.df → dfc まずはこれ。以前にこちらでも記述している。 dfコマンドをより分かりやすくしたコマンドで、バーで利用率を認識することが出来る。 インストールは以下のコマンドで行える。 sudo apt-get install dfc (Debian or Ubuntu) 2.vmstat → dstat パフォーマンスのモニタリングでよく用いられるvmstatを、更に拡張したコマンドであるdstatにする。 dstatには、vmstatにはないネットワークに関するパフォーマンスが追加されており、見た目も見やすくなっている。 インストールは以下のコ

  • chmodやchownのreferenceオプションを知った時は目から鱗だった話

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 元々ホスティング会社で働いていたので、その特性上ownerやpermissionを色々と弄る事が多く、数年前の社会人時代にchmodやchownをもっと楽に使えないかなぁと調べた時に目から鱗だったのがchmodやchownのreferenceオプションでした。 今回は単にreferenceオプション楽ですよね、という記事なのでご存知の方は退屈な記事だと思いますが、まわりに聞いてみた所意外と知られていなかったりしたので、ブログエントリにしておこうと思います。 referenceオプションを使うと、任意のファイルを指定することで、変更対象のownerやpermissionを指定したファイルと同じ設定にすることができます。 例えば、/bin/pin

    chmodやchownのreferenceオプションを知った時は目から鱗だった話
  • GNU grep 2.18リリース: 10倍速くなったと思ったら今度は200倍遅くなっていた | はむかず!

    先日の記事 いまさらgrepが10倍高速化したのはなぜか が思わぬ閲覧数を稼いでしまい、トルコ語の知識を日に広めるのに大きな貢献をしたような気がしますが、みなさんいかがお過ごしでしょうか。 実は先日の記事を書いた時にはすでに2.18がリリースされてたのだが、今回は2.17のときと違って日の大手メディアが取り上げてなかったので、ついつい見落としていた。しかし実は2.18でも大きな変更が!! リリースノート抜粋: grep -i in a multibyte, non-UTF8 locale could be up to 200 times slower than in 2.16. [bug introduced in grep-2.17] なんということでしょう。-iオプションでUTF8のときは2.17で10倍速くなっていたのだが、それ以外のマルチバイトロケールのときは200倍遅くなって

  • いまさらgrepが10倍高速化したのはなぜか – はむかず!

    最近GNU grepコマンドの最新バージョンがリリースされ、速度が10倍になったとのアナウンスがあった。それを聞いて、なんであんな枯れた技術に10倍もの高速化の余地があったのだろうと不思議に思った人も多いだろう。 ニュース記事:grepコマンド最新版、”-i”で10倍の高速化 家のリリースノート:grep – News: grep-2.17 released [stable] 今回のリリースでは正確には、マルチバイトロケールで、-iオプション(–ignore-case、つまり大文字小文字を区別しないオプション)をオンにした時の速度が10倍くらいになったそうだ。 なぜそんなに速くなったのか?逆を言えば今までなぜそんなに遅かったのか? そもそも、多くの日人にとって「大文字小文字の区別」というと英語のアルファベットか、せいぜいフランス語とかドイツ語とかのアクサン記号・ウムラウトがついたものく

  • 無効なURLです

    無効なURLです。 プログラム設定の反映待ちである可能性があります。 しばらく時間をおいて再度アクセスをお試しください。

  • findコマンドで特定のディレクトリ以下を無視する方法 - mollifier delta blog

    なんかCLIマジック:使って役立つワンライナー入門なんてのがあって気分が盛り上がってきたので、僕もワンライナーっぽいのを書いてみるよ。 困ったこと 例えば、カレントディレクトリ以下にあるファイルの名前を全部見たいとき、素直にfindコマンドを使うとこうなるね。 find . -type fでも出力はこうなる。 ./locale/.svn/entries ./locale/.svn/format ./locale/ja/switch_page_locale.dtd ./locale/ja/.svn/entries ./locale/ja/.svn/format ./locale/ja/.svn/text-base/switch_page_locale.dtd.svn-base ./locale/en-US/switch_page_locale.dtd ./locale/en-US/.svn/

    findコマンドで特定のディレクトリ以下を無視する方法 - mollifier delta blog
  • USP 友の会勉強会 AWK 一行野郎百裂拳

    USP 友の会勉強会 2013/12/22 AWK 一行野郎百裂拳 Normal Action-less 1 awk '{print $0}' awk '4' ファイルの中身を書き出す。 ≒ cat 2 awk '{}' awk '' 何も表示しない。 ≒ cat > /dev/null 3 awk '{print NR, $0}' awk '$0 = NR " " $0' 行番号を付ける。 ≒ cat -n 4 awk 'NR <= N {print $0}' awk 'NR <= N ' 最初の N 行を抜き出す。 ≒ head -n N 5 awk 'NR == N , NR == M {print $0}' awk 'NR == N , NR == M ' N 行目から M 行目を抜き出す。 6 awk 'NR >= N && NR <= M {print $0}' awk 'N

  • find コマンドの -mtime は +1 でも2日前のファイルが対象

    Landscape トップページ | < 前の日 2005-07-02 2005-07-06 次の日 2005-07-07 > Landscape - エンジニアのメモ 2005-07-06 find コマンドの -mtime は +1 でも2日前のファイルが対象 当サイト内を Google 検索できます * find コマンドの -mtime は +1 でも2日前のファイルが対象この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [unix] [シェルスクリプト] find コマンドの -mtime は +1 でも2日前のファイルが対象となる。つまり、(n + 1) 日前のファイルが対象。n は +0 を指定しても、一日以上前のファイルが対象になる。 - find が古いファイルを検索してくれないとあるテスト用 DB があり、定期的にバックアップを取っている。バ

  • 知らなかったyesコマンドの真の力 - harry’s memorandum

    yesコマンドとは? 'YES' - 妖精がみえてしまうジョンアンダーソンのプログレッシブバンドのことではありません。UNIX/Linux の yes コマンドを少しだけ語ってみたいと思います。 yesコマンドってなんですか?という人はまずUNIX/Linuxのターミナルで'yes'と入力してみましょう。 $ yes y y y^Cy がひたすら続きます。引数に文字列を渡せばその文字列をひたすら吐き出します。 $ yes "Cirque du Soleil" Cirque du Soleil Cirque du Soleil Cirque du Soleil Cirque du Soleil^Cこれ意味あんの?と思いたくなります。では何に使えるのでしょう? そうターミナルで対話的に行うときに なんと あの y を入力してくれるのです。 yesの例 まずテストファイル作成 $ for i i

    知らなかったyesコマンドの真の力 - harry’s memorandum
  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

    プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
  • kill コマンドって、プロセスを終了させるものかと勘違いしていた - LukeSilvia’s diary

    今までは、「kill すればプロセスは終了する」って思ってたので、例えば、以下のようなコマンドでデーモンプロセスが終了しないのを不思議に思ってた。 $ kill [デーモンのプロセス番号] (いや、man 読んどけよって話なんですが・・・) kill で終了させられない例 例として、rails のデフォルトのweb サーバであるwebrick $ ruby script/server webrick -d $ ps ax | grep ruby 518 ?? S 0:00.00 ruby script/server webrick -d $ kill 518 $ ps ax | grep ruby 518 ?? S 0:00.00 ruby script/server webrick -d kill したのに終了してねー(⊃д⊂) 今までやってた対処法 $ kill -KILL 518 こ

    kill コマンドって、プロセスを終了させるものかと勘違いしていた - LukeSilvia’s diary
  • Frequently-Asked Questions about sed, the stream editor

    Archive-Name: editor-faq/sed Posting-Frequency: irregular Last-modified: 10 March 2003 Version: 015 URL: http://sed.sourceforge.net/sedfaq.html Maintainer: Eric Pement (pemente@northpark.edu) CONTENTS 1. GENERAL INFORMATION 1.1. Introduction - How this FAQ is organized 1.2. Latest version of the sed FAQ 1.3. FAQ revision information 1.4. How do I add a question/answer to the sed FAQ? 1.5. FAQ abbr

  • Good night, Posterous

    Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.

  • 【コラム】Hello Worldコレクション (8) sed編 - 荒ワザを駆使して生まれるマニアックなHello World | エンタープライズ | マイコミジャーナル

    sedにおけるHello Worldの特殊事情 第8回は、sedを使ったHello Worldです。sedは来、標準入力(または引数指定のファイル)から1行ずつ読み込み、正規表現による文字列の置換などの処理を施して標準出力に出力するという、ストリームエディタです。したがって、そもそもsedはHello Worldのプログラムにはあまり馴染みません。また、sedにはawkでいうところのBEGIN{}に相当する部分がなく、入力データがまったくない状態では処理が開始されません。このため、sedでHello Worldのプログラムを作るには、何らかのダミーデータの入力が必要になります。 そこで、まずは「#!/bin/sed」で始まるsedスクリプトを記述するのではなく、「#!/bin/sh」で始まる普通のシェルスクリプトを記述し、そのシェルスクリプトの中からsedを起動する方式でHello Wo

  • UNIX & Linux コマンド・シェルスクリプト リファレンス

    目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コマンド フィルタを使用した文字列操作 1 フィルタを使用した文字列操作 2 日付を取得する 文字コードと改行コード シェルスクリプトのデバッグ AWK リファレンス (Deprecated) シェルスクリプト ライブラリ 『ether.sh』 お知らせ Bluesky を始めました @sunone.me 変更履歴 2023.10.07 ページ内リンクを修正した。 2021.02.01 このサイトに「もう 1 ページ追加しよう」と思ってから、も

    UNIX & Linux コマンド・シェルスクリプト リファレンス
  • sed

  • sed, a stream editor

    GNU sed This file documents version 4.8 of GNU sed, a stream editor. Copyright © 1998–2020 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A