はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")
先日Twitterで「大学生がスマートフォンでレポートを書いている」というツイートが話題になっており、それに対して反応している方達もほぼ全員が「スマートフォンでレポートを書くのは効率が悪い」という前提で話をしていることに大変違和感を覚えました。 なぜなら私はこのブログはもちろん、技術書を執筆するときでさえ主にスマートフォンで下書きをしているからです。 PCを使うのは、ほぼスクリーンショットの撮影と最後の仕上げだけです。 その方が、最初からPCで文字入力するのに比べて圧倒的に効率が良いです。 この記事では、iPhoneとAndroidそれぞれで音声入力を効率よくおこなう方法について解説します。 iPhone・iPadの場合 先に結論から申し上げると、iPhone・iPad・Macの日本語音声入力は、AndroidのGoogle音声入力に比べて認識精度が低く、認識できる単語が少ないです。 仕事
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 コマンド 2015/05/13 文字列を全置換したり、行単位で抽出したり、削除したり、いろいろなテキスト処理のできるコマンド。処理内容はコマンドラインパラメータで指定して、非対話的に一括処理できる。 sedで書ける処理であれば、処理内容にもよるが、perlのワンライナーで書くよりも速いことが多い。 sedというコマンド名は Stream EDitor の略らしい。 基本的な使い方 2021/01/17 標準入力をなにかしら処理して標準出力に出力するので、パイプとして使える。まあたいていのUNIXツールはパイプとして使えるのだが。 ファイル名を指定すればそのファイルを読み込んで処理して標準出力に出力する。 ファイル名を指定してオプション -i を使えば、そのファイルを読み込んで、結果をそのファイルに上書きする。ファイル自体を編集したい場合には便利。(-i はGNU sed限定) 処理
本の虫: Pingプログラムの話で、pingが通るたびに合成音声ソフトウェアにpingと喋らせた運用が紹介されている。実際にやってみたくなったので、方法を調べることにした。 まず、音声合成を行うコマンドラインのGNU/Linux用のソフトウェアを探さねばならない。調べると、espeakというソフトウェアが見つかった。 apt-get install espeak espeak "Hello. I am espeak." espeakは、何も引数を指定しない場合、stdinから読み取って音声合成していくれる。完璧だ。 さっそく、ためしてみた。 ping localhost | sed -e "s/.*/ping/g" | espeak なぜか動かない。これはsedの出力がバッファされているためだった。 プログラムのバッファリングの外部から操作するには、stdbufが使える。これはGNUのco
tree コマンドが便利 - IT戦記 昔作ったものを思い出したよ。 #!/bin/sh COMMAND="${0##*/}" usage() { echo "${COMMAND} <find command options>" exit } [ "$1" = '-h' -o "$1" = '-help' ] && usage FIND=`which find` SED=`which sed` [ -d "$1" ] && DIR=$1 && shift || DIR=. (cd ${DIR}; pwd) ${FIND} "${DIR}" "$@" | \ ${SED} -e "s,^${DIR},," \ -e '/^$/d' \ -e 's,[^/]*/\([^/]*\)$,\+--\1,' \ -e 's,[^/]*/, ,g' \ -e 's,\(^\+--\)\|\(^ \),,
Index データ集計コマンド 爆速で検索したいぜ! lookを使う LC_ALL=Cを設定する データのランダムサンプリングがしたいぜ! sedを使う awkを使う sortの--random-sortを使う Script言語を使う shufを使う ランダムサンプリング速度比較 合計と平均値を集計したいぜ! 列データ取得 重複行のカウント 合計値出力 平均値出力 複数ファイルのデータ結合がしたいぜ! 共通項目での結合 同じ行数での結合 まとめ データ集計コマンド joinコマンドが便利過ぎて生きるのが辛い - Yuta.Kikuchiの日記 lookコマンドによる二分探索が速すぎて見えない - Yuta.Kikuchiの日記 今日はデータ集計を行う上で絶対に覚えておいた方が良いコマンドと知識を紹介したいと思います。これを身につければシステム処理と業務効率化に大きく繋がると思います。この記
Linux環境での改行コードの変換に関するメモです。Linuxで扱う改行コードはLFのため、Windowsでの改行コードCRLFが混じっていると正しく動作しないことがあります。 unix⇔dos 改行コードを簡単に変換してくれるコマンドが2つ存在します。 unix2dos ファイル名 dos2unix ファイル名 dos2unixは、CRLFをLFに変換します。unix2dosはLFをCRLFに変換します。 trコマンド trは、文字列の置換用コマンドです。その他にも-dオプションを付けることで引数を削除するモードにもなります。 tr -d '^M' < crlf.txt > lf.txt 「^M」は「C-V後にC-M」で入力できます。これはCRを意味するようです。入力と出力のファイルが同一の場合、0バイトになってしまったので、別ファイルに出力しています。 nkfコマンド nkfは、文字コ
\x{} \pは後続する名前が表すクラス(プロパティ、スクリプト、ブロック)に属する文字にマッチし、 \Pは後続する名前のクラスに属さない文字にマッチします。 クラスの名前が一文字のときはブレースを省略できます。 クラス名の前に^を置くことにより否定形の指定を行うことも可能です。 Perl 5.8 での変更点 Perl5.8以降(5.6でも使えたようですが)では \pや\Pで始まるプロパティ指定に標準Unicode属性を使うこともできます。 詳しくは perlunicode perlunicode - Perl における Unicode サポート を参照してください。 日本語による説明が Unicodestandard にもあります。 Perl 5.8以降ではユーザーが任意のプロパティを作成することができます (IsまたはInを必ず前置)。 詳しくは perlunicode perluni
ツイッターで「Apacheログをtail中にステータスコード部分だけに色つけしたい」ってのを見たので作ってみた。 #!/bin/sed -f ## MEMO # [0m reset # [1m bold # [3m italic # [4m underline # [5m blink # [30m black # [31m red # [32m green # [33m yellow # [34m blue # [35m magenta # [36m cyan # [37m white s/\(HTTP\/1..\"\) \(2[0-9][0-9]\) /\1 \x1b[34m\2\x1b[0m / s/\(HTTP\/1..\"\) \(3[0-9][0-9]\) /\1 \x1b[32m\2\x1b[0m / s/\(HTTP\/1..\"\) \(4[0-9][0-9]\) /\1
Guides, HowTos and Tips for Technology Geeks - The Geek Stuff UbuntuやFedoraなど人気のある最新のディストリビューションはインストールから利用、アップデートまでよく組まれており、ターミナルが使えなくても問題なく利用できることが多い。しかし、ある程度慣れてきたらGUIを使うよりもCUIを使う方が作業効率がいいことがあることもまた事実。また、サーバとして運用している場合にはCUIで利用するしたり、遠隔ログインしてCUIベースのターミナルで作業することも多い。 50 Most Frequently Used UNIX / Linux Commands (With Examples)において、UNIXやLinuxでよく使われるコマンドが50個紹介されている。ビギナーユーザにはコマンドの参照リストとして、中級者以上のユーザには知
昔、『「ping -a」で音が鳴る!』なエントリでも書いたのですが、何らかをリアルタイムにチェック/監視したい時に、視覚だけではなくアラート音が一緒に出ると、モニタリングしやすいものです。 というわけで、Linuxなんかで、とあるログファイルの出力から、ある文字列が検出された際に、ビープ音を鳴らすワンライナーは以下。 $ tail -f ログファイル | sed -e 's/\(対象文字列\)/\1^G/'上記を実行中に、指定ログファイルに対象文字列が出力されるとビープ(Beep)音が鳴るはず。 「^G」(0x07)の部分が、ASCIIのBELキャラクタのリテラルです。 $ echo -n "^G"などとしてやれば、ベル(ビープ音)が鳴りますよね。 ちなみに、「^G」は、[Ctrl-V] ⇒ [Ctrl-G] の順に入力してやればOK。emacsだと[Ctrl-Q] ⇒ [Ctrl-G]か
アフィ面倒だからやめます。代わりに好きなようにやります とはいえ強制広告はワシの力じゃどうにもならんので堪忍な 10 :仕様書無しさん :2010/04/23(金) 22:37:24 おJava女どれみ プログラマー猿 カウボーイ・デバッグ JAVAン 人月を探して 超電磁ロボ コンパイラーVC++ パケットモンスター 機動戦士GNUDAM エリア8KB 新言語Javaンゲリオン あらいぐまオラクル 千と千尋のバグ隠し あずまんがI/O ゲットデバッカーズ デバッグNo.1 Bugって仕様 人月姫 エスイー(SE)魔美 あしたの仕様ー 外注遣いに大切なこと ガンダムsed ガンダムOO(オブジェクト指向) ランダムSEED ガンパレード・デスマーチ 〜新たなる行軍歌〜 アルプスの少女High-C Cosmic DataBase COMMITさん☆ ARMs ハックしよう大魔王 魁!プロパテ
Guides, HowTos and Tips for Technology Geeks - The Geek Stuff Sasikala氏がThe Geek StuffにおいてUnix Sed Tutorial: Find and Replace Text Inside a File Using RegExのタイトルのもと、sedコマンドで置換を実施する場合の使い方とその例題をまとめている。sedはテキストファイルから特定の行を表示したり削除、または特定の文字列を置換する用途で用いられる。特に文字列の置換をおこなうためのツールとして活用されることが多い。 sedは便利なツールだが、置換の指定方法はマニュアルを読むだけではわかりにくいところがある。実例を通して身につける方法がわかりやすい。Unix Sed Tutorial: Find and Replace Text Inside a
Vim で日本語を書く 先日までのエントリで少々触れた通り、僕はアニメやゲームに関わる仕事などをしていて、仕事では主に開発言語として日本語を使っています。開発環境は主に Vim を使っているのですが、僕の周囲の Vim ユーザー(主にプログラマーが多いですね)は Vim はまるで日本語に向かないクソだというふうに主張している。 実際には Vim は日本語のプロ(自分で自分のことをこういう風に言うのはとても恥しいし、アホっぽいですね)の道具としても十分使い物になる道具ですので、その辺りのことを紹介していこうと思います。 1.IME を適切に選びましょう Vim で日本語を書く際の最大の問題点が Vim のモードと IME のモードの問題です。一言で言うと「コマンドモードに戻った時に同時に IME も死んで欲しい」というアレです。これは gVim を使うか、 Vim 協調モードのある適
参考文献 † # Web サイトのことをやたらと HP という人がいますが,HP は Hewlett-Packard のことです. 非常に有益です. 入門 UNIX シェルプログラミング UNIX の部屋 awk manual sed manual 正規表現メモ Cyberam-シェルスクリプト 吉田淳「シェル&シェルスクリプト」, 日経 Linux, 2004/4- 森島直人「シェルの魔術」, UNIX MAGAZINE, 2004/11- man コマンド ↑ bash スクリプトの書き方 † スクリプトファイルの名前は何でも良いが,慣例として拡張子は .sh とする. スクリプトファイルは,必ず以下の行で書き始める. #!/bin/bash なお,/bin/bash とは,bash コマンドへのフルパスである.Linux オペレーティングシステムでは /bin 以下にある sh は
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く