サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
インタビュー
qiita.com/richmikan@github
くだらないコメント拒否 この記事はPOSIX原理主義に基づいて書いている。POSIXを逸脱した途端、「どこでも動く」「コンパイル不要で動く」「10年、20年先もたぶん動く」という時空を超えた互換性を捨てることになる。 だからPOSIX原理主義な記事を書いているというのに、その意図を汲まずにするくだらないコメント、とくにheliac2000という著作権侵害も平気で犯す輩は絶対にコメントしないこと。 人によってひらがなだったりカタカナだったり 名簿入力フォームで名前とふりがなが集まったのだが、ふりがなが人によってひらがなだったりカタカナだったりするので統一したい。 という相談を受けた。 尚、ひらがなは全角文字にしか存在しない(MSXなど半角ひらがなを持っているコンピューターはあるのだけど一般的ではない)ため、全角文字前提での話とする。半角カタカナを扱いたい場合は、全角文字・半角文字の相互変換に
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 今日は12/24。今日もこのQiita上で一つ戦いを挑んできた。「Qiitaサポートは無能だ」と批判する記事だ。言っておくが、喧嘩が好きでやっているわけではない。権利とは戦って手に入れるもので、その手段だと思っているからやっているだけだ。そして、フリーランスはそれがやりやすい立場にある。私はそれを求めてフリーランスになった。この記事では「フリーランスなら、その立場を大いに活用して戦え」と訴える。 私のこと 私は来年で10年目を迎えるフリーランスだ。また、「常駐案件をこなしていたらそれは会社員と同じだ」というポリシーから、そういう仕事は半
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Qiitaサポートは無能である 始めに言っておく。 はっきり言って、今のQiitaサポートは無能である。「口やかましい少数派」(後述)の奴隷だ。 自由の国アメリカでは星条旗を燃やすことも自由を保障するために許されているとは有名な話だが、良識のあるQiitaならいきなり消しはしないだろう。私は大真面目でこの記事を書いているのだから。 この記事では、なぜQiitaサポートが無能であると思うかという理由を書き、そして最後に改善案を書いて終わりにする。 事の経緯 この記事を書こうと思った理由は、Qiitaサポートによる理不尽な対応を自分がされた
やってきました、Advent Calendar 2016。ここ数年毎年参加してきたので、よし「今年も」と思ったのですが…… 脳内の本音を喋る回路とTwitterを直結している人 Twitter上にこういう発言をしている人がいました。 "シェルスクリプトはどこでも動くと言ったな、あれは嘘だ" "echoコマンド一つでも、/bin/echoかシェルの組み込みコマンドかを意識しないといけないの、はっきり言って現代人のやることじゃない" "シェルスクリプトのプロジェクトに「curlが無いときは?」「whichコマンドが無いときは?」という性格の悪いプルリクを投げるの好き。" まぁ、もう誰とは言いませんけどね。1 ここには反論を書くことにしました 誰とは言いませんが、このAdvent Calendarの関係者の発言とだけは言っておきます。で、こうして品位を欠いた状態の場所にまともな話題を書いても不毛
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
時間の計算もShellScriptの泣き所だった シェルスクリプトが敬遠される理由の一つ。それは時間の計算機能が弱いところだ。例えば、 今から一週間前の年月日時分秒は?(それより古いファイルを消したい時など) Ya年Ma月Da日とYb年Mb月Db日、その差は何日?(ログを整理したい時など) この年月日は何曜日?(ファイルを曜日毎に仕分けしたい時など) といった計算が簡単にはできない。dateコマンドの拡張機能を使えばできるものもあるが、できるようになることが中途半端なうえに、OS間の互換性がなくなる。これを解決する方法がこのTipsだ。 UNIX時間との相互変換ができれば一気に解決 前述のような日時の加減算や2つの日時の差を求めるなどといった時は、一旦UNIX時間に変換して計算し、必要に応じて戻せばよいことはご存知のとおり。曜日を求めるのだって、UNIX時間変換の値を一日の秒数(86400
シェルスクリプトから単純なメール(日本語)を送る方法は以前に紹介しましたので、もうできますね。 今回は、さらに添付ファイルを付けて送りましょう。この技法さえ習得すれば、毎日生成するログファイルを、定時にcronで自動的にメール送信することもできますし、或いはatコマンドを併用し、予め用意しておいた本文と添付ファイルを指定日時に予約送信するなんてこともできます。 必要なのはたったこれだけ 添付ファイルを送るとはいえ、必要なものは添付ファイル無しの時と同じで、次の3つだけです。 メールを送信できるホスト (これ最重要) Bourneシェル(素のshでも、bashでもdashでもkshでもzshでも) sendmailコマンド(大抵は /usr/sbin あたりに入ってます) これだけあればOK。つまりPOSIX(UNIXで必須のもの)以外で必要なものはsendmailコマンドを備えた主要MTA
この投稿は、某秘密結社の幹部が、世を忍ぶ仮の一般人としてお送りします。 **【2015/01/16】**戦いを挑んだ結果はこちら!(→結果にワープ) **【2015/01/14改訂】**Straming APIのオマケ話を追加しました。(→オマケへワープ!) 明後日、金曜ロードSHOW!に、アイツがまた来る! 今週(2016/01/15)、金曜ロードSHOW!であの「天空の城ラピュタ」が放送されるってご存知でしたか? そうです。あの、伝説のクジラを呼び覚ます禁断の呪文「バルス」をTwitter民に唱えさせる、それはそれは恐ろしい映画です。 この呪文が唱えられる予想時刻は、**日本時間で2016年1月15日23時21分頃**と言われています。 シェルスクリプトで戦いを挑みたい! あの「バルス」に、無謀にもシェルスクリプトで戦いを挑もうと目下準備中であります。 戦いとは何か……、**上映中にT
この記事は、POSIX原理主義の思想で世界征服を目論む**秘密結社シェルショッカー日本支部**がお送りします。 物語に登場する名称は一部を除き架空のものであり、実在する人名・団体名等とは一切関係ありません。 Twitterリア充祭、絶賛開催中 全世界70𥝱人(70𥝱人=70,000,000,000,000,000,000,000,000人)のプログラマーどもよ、メリークリスマス。私こそ秘密結社シェルショッカー日本支部のリッチー大佐である。 こんな時間に、しかもクリスマスの夜にQittaを訪れているお前たちなら当然、ひとりでネットと戯れているはずだな!しかし、ネットの向こうには、カノジョやデートスポット、高級な料理の写真とともに自分がいかに勝ち組であるかをTwitterでひけらかすリア充どもが、今まさに増殖している。しばらくの間、Twitterを開けばそんな奴らのツイートが洪水のように押
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事の説明 POSIX規格で用意されているコマンドとその概要が一覧できるページ(チートシート)が欲しいという要望をもらった。もちろんThe Open GroupのPOSIXのページへ行って、1つ1つのコマンドのページを開けばわかることはわかるのだが、概要という形では一覧できない。 確かにそうだと思ったので、生成することにした。もちろんPOSIX原理主義(極力POSIXの範囲のコマンド)1で。 そこはやっぱ意地でしょ。 というわけで、まずは生成したチートシートをどうぞ。 これが、POSIXの範囲で使えるコマンド一覧だ! admin -
この投稿はクローラー/スクレイピング Advent Calendar 2014の12月25日用です。 199X年。核戦争によって荒廃した時代に、ジャギという男がいた。 「おいお前、普段使っているシェルの名前を言ってみろぉ」 弟ケンシロウに成りすまし、そう言っては、“Bourne Shell”と答えない平民達を虐殺するという悪行を繰り返していた。弟の名に頼り、銃に頼り、人質に頼り、含み針に頼り、そしてガソリンという切り札に頼ったその男は、己の肉体のみで闘う弟によって、無様な最期を遂げた。 さて題名にもあるとおり、この記事は「POSIX原理主義」、つまりUNIX系OS最小インストール時に使えるコマンドだけでスクレイピングします。立派な言語やライブラリーがあったらスゴいスクレイピングができて当たり前。それだと道具がスゴいだけで、「自分はノーアイデアです」と言っているようなものです。 しかしながら
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? どのUNIXでも通用するロック機構はあるのか? 他言語では大抵用意されているロック機構であるが、シェルスクリプトにはロック機構を直接実現するコマンドが無い。flockコマンドやlockfコマンドなどOSによっては独自コマンドがあるが、OS独自ゆえ、それらを使ってしまうとシェルスクリプトの可搬性は失われてしまう。(しかも前述の2つのコマンドは、ファイルロックのコマンドであるうえに、ロックがかかっている間は次の行に進めない) 「特定のOSに縛られてしまうくらいなら他の言語を使う方がよっぽどマシだ」といって、シェルスクリプト信者(POSIX原
特定コマンドの正規表現で使えるメタ文字が何だかわからない! 正規表現自体は知っているけど、それが今から使おうとしているコマンドで使えるものなのかわからずに困っている人も多いと思うのでまとめてみた。 たった3つの正規表現メタ文字セットだけ知ればいい コマンドによって、対応している正規表現メタ文字の範囲には違いがある。しかし、最低限知っておけばよいのは2種類+1サブセットの3つだけだ。 BRE(基本正規表現)メタ文字セット ERE(拡張正規表現)メタ文字セット AWKのサブセット もちろん、これ以外にもGNU拡張正規表現メタ文字セットやPerl拡張正規表現メタ文字セット、JavaScript拡張正規表現メタ文字セットなどいくつかあるのだが、「どのUNIXでも(=POSIXで)使える」という特長を持たせたいのであれば、それらは覚えても意味がないので上記の3つさえおさえておけばよい。(例えPOSI
0001 f 1922 フグ田 サザエ sazae@fuguta.sazae3 0002 m 1895 磯野 波平 namihei@isono.sazae3 0003 f 1901 磯野 舟 fune@isono.sazae3 0004 m 1917 フグ田 マスオ masuo@fuguta.sazae3 0005 m 1938 磯野 カツオ bonito@isono.sazae3 0006 f 1942 磯野 ワカメ wakame@isono.sazae3 0007 m 1947 フグ田 タラオ tarao@fuguta.sazae3 0008 ? ? 磯野 タマ tama@isono.sazae3 この人々にメールマガジンを送る。ただし宛先にはBcc:フィールドを用いて、会員同士にはアドレスが知られないようにすること。 ……という作業を、シェルスクリプトを使って、しかもスマートに行う、
平日・休日ログを自動的に仕分けしたい ある仕事で、土日祝日のログを自動的に休日扱いしたいという要望があった。 土日だったらすぐにわかるけど、祝日ってどうすりゃいいのよ。 月日固定の日付や振替休日はいいとして、春分の日と秋分の日は調べようがないでしょ。 (註:春分と秋分は、毎年天文観測によって二年後の月日が決められます) 休日設定ファイルでも作って毎年打ち込んでもらうしか……、と思っていたら Google先生が囁いた。 Google Calendar APIを使いなさい。 Google先生への質問状 というわけで、さらに詳しくGoogle先生に聞きつつ、ささーっと作ったのが下のシェルスクリプト。 #! /bin/sh # このURLは # Googleカレンダーの「カレンダー設定」→「日本の祝日」→「ICAL」から取得可能 # (2017/01/12現在) url='https://cale
困った時はすぐQiitaを始めとしたTipsを表面的に鵜呑みにし、使えそうなプロダクトを拾ってきてマニュアル通りに対応するプロダクト至上主義者達よ。そんなことでは、想定外の事態に見舞われた時すぐ死ぬぞ。想定外とは、マニュアルには載ってないから想定外なのだ。マニュアル通りにしか動けぬ者は、典型的なコンビニ店員の如く薄給に喘ぐだけ。頭を使え!UNIX哲学に目覚めよ!そしてPOSIX原理主義を崇拝せよ! Follow
Bash使いたくないけどPIPESTATUSどうしよう…… そんなアナタに耳よりな話。POSIXの範囲、つまりどのUNIXシェルでも同等のことができるというお話です。 元ネタはコチラですが、ここで例示されているコードでは、繋ぎたいコマンドが増えるとやがて動かなくなるので修正版を公開します。 1)次のシェル関数を定義 まずは、PIPESTATUSのように、全ての戻り値を集めたいコマンドパイプ列を書こうとしているシェルスクリプトの冒頭に次のシェル関数を追記します。 run() { local a j k l com # ←ここはPOSIX範囲外なんだけど…… j=1 while eval "\${pipestatus_$j+:} false"; do unset pipestatus_$j j=$(($j+1)) done j=1 com= k=1 l= for a; do if [ "x$a
今、東京メトロのコンテストが熱い! ウワサでは知っていると思うが、今、東京メトロが設立10周年を記念して「オープンデータ活用コンテスト」というのをやっている。 駅の設備はもちろん、リアルタイムの列車位置なんかも公開するという大盤振る舞い。「これで役立つアプリ作ってね」ということなのだが、じゃあ俺がシェルスクリプトで何か作ってやろうじゃないかということで書いてみたので紹介する。 WebAPIの仕様はコンテスト応募予定者限定公開なので作ったソースコードも公開はできないのかなと思っていたら、開発者フォーラム内で**「アクセストークン(後述)出さなければソースコードも公開OK」**という回答があったので、公開に踏み切ることにした。 接近情報表示コマンド「メトロパイパー」 まず接近情報とは何かだが、駅のホームへ行くとそこの電光掲示板に表示される 【こんど】快速 東葉勝田台行 【つぎ 】各停 西船橋行
次のページ
このページを最初にブックマークしてみませんか?
『@richmikan@githubのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く