タグ

スクリプトに関するrichard_rawのブックマーク (128)

  • 第46回 Perl 5.26で変わること(1):Perl Hackers Hub|gihyo.jp … 技術評論社

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはcharsbarこと石垣憲一さんで、テーマは「Perl 5.26で変わること」です。 Perl 5.26リリース 去る2017年5月30日にPerl 5.26がリリースされました。これは1987年にPerl 1.0が生まれてから30年、モダンPerl運動のきっかけとなったPerl 5.10が2007年に生まれてから10年という節目のリリースです。2016年春に新たにパンプキン[1]に就任したSawyer X氏のリードのもとでリリースされる最初の安定版[2]でもあります。 Perl 5はかれこれ20年以上も同じメジャーバージョンを使い続けていることからも察せられるように、後方互換性が比較的よく保たれている言語です。それでも、節目節目では新機能の追加とともに多かれ少なかれ互換性が失われるような変更が行われてきました

    第46回 Perl 5.26で変わること(1):Perl Hackers Hub|gihyo.jp … 技術評論社
    richard_raw
    richard_raw 2023/10/26
    Ubuntu 20.04 の Perl 5.30.0 だと普通に動いていたのに 22.04 にすると動かなくなるスクリプトがありました。こういうことだったのか。
  • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

    はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")

    【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
    richard_raw
    richard_raw 2023/09/05
    拡張変数展開は使いこなしたいんですがたまにしか使わないので忘れるし検索しづらい……。
  • macOS のデフォルト状態でコマンドラインからOCR処理を行う - TeX Alchemist Online

    macOS 12 Monterey では,OSビルトインでのOCR機能が搭載されました。Preview.app で,画像やスキャンPDF(中身がスキャン画像のPDF)に対して,ただマウスでドラッグするだけで,中身の文字を認識して選択し,コピーできるようになっています。さらに,macOS 13 Ventura では,それが日語にも対応しました。 たとえば,(今や入手困難となってしまった)The TeXbook のアスキーによる日語版をスキャンしたものを Preview.app で開くと,何もしなくても,文字選択できます。 これをコピーして他のエディタにペーストすると, TEXの名称で気をつけなければならないことがほかにもある。Eの文字が不揃いになっていることだ。Eの文字を少し下げてあるのは、TeXが組版のためのシステムであることを印象づけるためであり、またほかのシステムの名称と区別するた

    macOS のデフォルト状態でコマンドラインからOCR処理を行う - TeX Alchemist Online
    richard_raw
    richard_raw 2023/07/04
    おお、使ってみたい。……が、我が家のMacBookがなぜかログインできない状態 orz
  • シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita

    この中で私が特に気に入ったコマンドは dateround です。次点は dategrep です。この二つは特に強力で、awk やその他のコマンドを使って日時をこねくり回すような「無駄に難解なコード」を書かずに Dateutils のコマンド群だけで大抵のことはなんでもできてしまいます。専用のことをするには専用のコマンドを作ることが重要であることを思い出させてくれるでしょう。 Dateutils の重要な特徴と使用例 大抵のコマンドは機能の説明から想像できると思いますし、公式サイトにも例があるので詳細を一つ一つ説明することはしません。その代わりに「Dateutils の使いこなしに必要な考え方」が分かるような例をいくつか紹介します。 重要な注意点ですが Dateutils はロケールをサポートしていますが、原則としてシステムのロケール情報やユーザーの環境変数には依存していません。内部にロケー

    シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita
    richard_raw
    richard_raw 2023/06/06
    便利そう。でも追加インストールするにはプロキシ設定とクライアント証明書をごにょごにょしないといけない環境なのでうーん。
  • 【悪用厳禁】ChatGPTとGoogleDocsを連携して無限に記事を生成する方法(2.4万字)※GAS編集解説動画付き 3/7更新|チャエン | 重要AIニュースを毎日発信⚡️

    最初にアカウントを作成する必要がありますが、メールアドレスを登録すれば数分で完了します。 メールの場合は認証作業が必要です。 1.2 シークレットキー作成 続いては、以下の画面から"create new secret key"をクリックすると自動で生成されます。 先ほどのこちらのリンクから以下のページへ飛べます。 https://beta.openai.com/account/api-keys シークレットキーをコピーして、別で保存しておきます。 一度OKで閉じると消えてしまうので、しっかりとメモにして残しておくことをおすすめします。 一応何度でも作成はできます。 1.3 料金体系 実は、OpenAIAPIは無料ではありません。 なので、先ほどのシークレットキーは他人は教えないように!!! 言語モデルによって料金が異なります。 大体1記事書くのに分量にもよりますが、数円くらいです。 また

    【悪用厳禁】ChatGPTとGoogleDocsを連携して無限に記事を生成する方法(2.4万字)※GAS編集解説動画付き 3/7更新|チャエン | 重要AIニュースを毎日発信⚡️
    richard_raw
    richard_raw 2023/01/30
    これはもう検索エンジンに頑張って真正性チェックしてもらうしか……。
  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
    richard_raw
    richard_raw 2022/11/07
    二重カギ括弧はPOSIXじゃなかったのか……。
  • 名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita

    はじめに そりゃまあ 30 年も経てば古くなりますよ。「入門UNIXシェルプログラミング」は今もシェルスクリプトに関するオススメのとして名前が挙がる名著です。しかしこのは古いです。POSIX でシェルが標準化される以前ので、内容から判断するとおそらく 1990 年ぐらいの常識に基づいて書かれています。 古いから参考にならないと言うつもりはありません。しかしどれだけ優れたでも時間の流れには勝てません。良書であると思っているからこそ、古くなってしまった内容は訂正する必要があると考えています。なおシェルスクリプトに関する古いはこれだけではありません。オライリーから出版されているも古いばかりです。いつ頃に(原書が)書かれたなのかを確認した方が良いでしょう。 ということでレビューというていで、古くなってしまった内容の訂正を行いたいと思います。新しく「入門UNIXシェルプログラミング

    名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita
    richard_raw
    richard_raw 2022/06/20
    確認したら第2版じゃなくて初版で勉強してましたわ自分。……もうShellcheckに頼り切りでいいか(思考放棄)。
  • ただ15行のシェルスクリプトで個人ナレッジマネジメントツールを作った話

    はじめに 自分が読んだや記事などを読む時に書いたノートを体系的に管理したいですよね。 現在優秀なナレッジマネジメントツールはありふれています。企業向けだと Confluence DocBase Qiita Team などがあります。個人向けは Notion HackMD Boost Note のようなシンプルで使いやすいツールがあります。マインドマップツールをさらに含めると数え切れません。 筆者自身はミニマリストです。 コードのようにGithubで自分のノートを管理したい Webからマインドマップ形式になっているノートを確認したい サブスクではなく、無料で使いたい なので、個人ナレッジマネジメントツールを自作したいという発想に至りました。 結果としては下記の15行シェルスクリプト、GitHub ActionsとMarkdownマインドマップ変換ツールmarkmapで作りました。 項目をク

    ただ15行のシェルスクリプトで個人ナレッジマネジメントツールを作った話
    richard_raw
    richard_raw 2022/05/06
    markmap とGitHub Actionsで。Actions使ってみようかなー。
  • 【Mac】Kindle本も永久保存!自動スクショでPDF化する方法|脱凡リーマンブログ

    悩んでる人 KindleMacユーザーでも、自動スクショしてPDFデータで保存する方法ってあるの? と思われている方に向けた記事です。 この記事でわかること ●KindleMacで自動スクショしてPDF保存する方法 どうも、さっくんです。 Kindle unlimitedも活用しつつ、ビジネスを中心に年間100冊以上読む読書ライフを2年送っています。 今回は【Macユーザー対象】Kindleを自動スクショしてPDF化する方法について紹介します。 何か専用のソフトをインストールする方法ではなく、既存のMacソフトだけで永久保存できる方法です。 こんな経験ないですか? ●読みたかったKindle unlimited対象がいつのまにか対象からはずれている。 ●読みたいKindle unlimited対象が10冊以上で、ライブラリがキャパオーバーしてしまう。 ●購入したKindle

    【Mac】Kindle本も永久保存!自動スクショでPDF化する方法|脱凡リーマンブログ
    richard_raw
    richard_raw 2022/02/21
    私的複製ですがunlimited対象から外れた本の複製はどういう扱いになるのか分かりません></某電子書籍ストアが閉じるので、adbでスクショとページめくりしたことを思い出しました。
  • シェルスクリプトを書くのをやめる - blog.8-p.info

    今年から、できるだけシェルスクリプトを書くのをやめようとしている。私が毎日 zsh に打ち込んでいるのも広義のシェルスクリプトだし、自分用の雑なスクリプトを書くことはあるけれど、チームの他の人も将来に使ったり改変したりするようなものは、なるだけ他の言語を使っている。 シェルスクリプトを書くのは難しいし、その難しさは、学ぶに値しないといったら言い過ぎかもしれないけれど、2021年に初心者が取り組むべき問題とは言い難いと思う。 シェルは悪いプログラミング言語である Bash Strict Mode とかを使ってみても、シェルスクリプトには落とし穴が多すぎる。自分で書いたものを自分で使っている分には大丈夫なのだけど、スクリプトがチーム内で使われるようになると、考慮していなかったところ、例えばファイル名に空白文字が含まれるとか、そういうレベルの微妙なところで、ちゃんと書かれていないスクリプトは壊れ

    richard_raw
    richard_raw 2021/09/16
    書いてますが、ワンライナーに毛の生えたのとか単純なバッチ処理くらいかなあ。
  • POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき!ShellScriptBashshellPOSIX はじめに find の出力を xargs にパイプで渡すというのはよく見かける使い方ですが、find -print0 | xargs -0 が使えない POSIX 準拠のシェルスクリプトでは find -exec {} + を使った方が良いです。安全かつ十分に速いからです。よく見かける -exec {} ; ではなく -exec {} + ですので間違えないようにしてください。多くのケースでは + の方が優れているのですが ; ばっかり使われているのを見ると、意外と知られてない気がします。 少しだけ予備知識として、-exec {} ; は -exec {} \; と ; をバックスラッシュでエスケープするのがよく見る使い方

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
    richard_raw
    richard_raw 2021/09/14
    私は1999年で知識が止まってました。";"と"+"でそんなにパフォーマンスが違うとは……。というか"-print0"はPOSIX標準じゃなかったのか。/(追記)「;」は単体実行で「+」はグループ実行。
  • シェルスクリプトの [ は /bin/[ と言ったり [ "x$var" = "xval" ] と書く人はオジサン - Qiita

    # Ubuntu 20.04 の bash での実行結果 # シェルから [ が何として見えているか $ type [ [ is a shell builtin # PATH から見つかる全ての [ コマンドを出力する # 補足 zsh では which がシェルビルトインコマンドで、シェルビルトイン版の [ も出力される $ which -a [ /usr/bin/[ /bin/[ $ type [[ [[ is a shell keyword # zsh では [[ をパターンとして認識してしまうのでダブルクォートが必要 $ type "[[" [[ is a reserved word ちなみに [ の外部コマンド版が /usr/bin/ と /bin/ の両方にあるのは Ubuntu 20.04 では /bin が /usr/bin へのシンボリックリンクになっているからです。Ub

    シェルスクリプトの [ は /bin/[ と言ったり [ "x$var" = "xval" ] と書く人はオジサン - Qiita
    richard_raw
    richard_raw 2021/09/02
    40年前だったのかよ!
  • シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita

    TL; DR 変数をダブルクォートしない使い方は上級者向けの危険な機能です! $@ と $*(または配列の全要素)をダブルクォートしない使い方は知る必要すらありません! ShellCheck を導入すれば誰でも簡単に正しい書き方がわかります!! 2021-08-21 補足 この記事は dash や bash などの POSIX シェルの一般的な動作を解説しており zsh のデフォルトとは異なります。記事の中でも説明していますが zsh の場合はシェルのオプションを変更することで POSIX 準拠の動作に変更することができます。zsh に関しては後半の「zsh に関する注意点」も参照してください。 はじめに プログラミング言語は、言語によって記号の意味が異なることがよくあります。クォーテーションマークはその一つです。C 言語ではシングルクォートは文字リテラル(一文字)を意味し文字列はダブルク

    シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita
    richard_raw
    richard_raw 2021/08/26
    “あれ?でも \n で改行されてるよ?って思った方、それは echo コマンドが解釈しているだけです。” なんだってー!ずっと勘違いしてました。
  • なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita

    なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜ShellScriptBashshellPOSIX まえがき この記事は「シェルスクリプトで高い移植性と生産性を両立させるシリーズ」の第一弾です。移植性と生産性を両立させるための前提知識として POSIX コマンドの問題点について解説します。第二弾では高い移植性と互換性を実現させるための考え方、そして第三弾、第四弾ではそれを実現するシェルスクリプトの具体的な実装テクニックを紹介します。第五弾では現実的な問題と回避方法について解説する予定ですがまだ具体的な内容は決まっていません。第五弾はその前に「シェルスクリプト入門(仮)」の記事を書こうと思ってるので少し遅くなると思います。もし興味がある方は記事をストックしていると更新時に通知されると思います。 2021-07-11 追記 記事が長くなった

    なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita
    richard_raw
    richard_raw 2021/06/28
    “私はシェルスクリプト用のテストフレームワークである ShellSpec の開発者です。” つよい。
  • 読書メモをScrapboxに残していくために構築した仕組みとワークフロー

    MediaMarkerがサービス停止して以来、読書メモをどこに残すべきかというのが個人的に大きな問題でした。 蔵書管理はブクログで行っているのですが、ここに常時読書メモを残すというのはどうもピンとこない。アプリを起動すればメモは残せるんだけど、ここに残すとそれはそれで後々めんどくさい。時にはスクショや紙のを撮影した写真も貼り付けたいわけです。 以前であれば、MediaMarkerで読書メモを残す→Evernoteに自動で出力される→その上にいろんなものを乗っけて読書メモ完成!って流れだったのですが、ブクログで読書メモを残してもそれをほかに連携するすべがない。 ブクログに登録した書籍情報をRSS経由でEvernoteに登録していたのですが、最近ブクログのRSSの挙動がおかしい・・。 ということで、読書メモはブクログとは別のところに残すが良いだろうということで、Scrapboxを使えないかと

    読書メモをScrapboxに残していくために構築した仕組みとワークフロー
    richard_raw
    richard_raw 2021/01/12
    Amazonから書誌情報を書き出すブックマークレット良さそう!あとで使ってみる。
  • シェルスクリプトで作る Twitter bot 作成入門

    筆者が開発している幾らかのコマンドラインプログラムとシェルスクリプトを使って簡単に Twitter bot を作る方法をご紹介します。

    シェルスクリプトで作る Twitter bot 作成入門
    richard_raw
    richard_raw 2020/09/30
    こういうの好きかも。
  • また make の話してる(2020年9月14日) - なにもわからない

    私の大好きな Makefile の話が盛り上がっていたのでまとめました。 「やめてね。」って方はお声がけください。 同じ会社にいるけど、真逆の感想を持っている。Makefile読まないと副作用が分からないし、Rakefile/package.jsonだけで済むのに無駄に1つレイヤ増えていて、Makefileできたときからいる人は楽だけど、途中から入った人にとっては学習コストが高い。 https://t.co/EXtmI3xl72— 神速 (@sinsoku_listy) 2020年9月13日 golangでMakefileを使うのは分かる。 ただ、RubyやNode.jsのリポジトリなら $ git clone xxx $ cd xxx $ bundle install && rake もしくは npm install && npm test で環境構築ができることを期待する。— 神速 (

    また make の話してる(2020年9月14日) - なにもわからない
    richard_raw
    richard_raw 2020/09/15
    twitterまとめ記事。/makeをタスクランナーとして使う文化があるんですな。
  • スクリプト作成と自動化のための Python の使用

    Note この記事では、Python の便利なライブラリの一部を使用するように環境をセットアップする方法について説明します。これにより、ファイル システムの検索、インターネットへのアクセス、ファイルの種類の解析など、Windows 中心のアプローチからプラットフォーム間でタスクを自動化することができます。 Windows 固有の操作の場合は、Python 用の C 互換の外部関数ライブラリである ctypes、Windows レジストリ APIPython に公開する機能である winreg、Python から Windows ランタイム API にアクセスできるようにする Python/WinRT を確認してください。 開発環境を設定する Python を使用してファイル システムの操作を実行するスクリプトを記述する場合は、Microsoft Store から Python をイン

    スクリプト作成と自動化のための Python の使用
    richard_raw
    richard_raw 2020/03/10
    職場のプロキシでストアに接続できなかったりします(ぇ
  • HomebrewのインストーラーをRubyからBashに書き直しました! - プログラムモグモグ

    みなさんはHomebrewをお使いでしょうか。macOSをお使いの多くの開発者が使っていると思います。 HomebrewのインストーラーはRubyで書かれており、次のコマンドでインストールするようになっていました。 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" HomebrewがRubyに依存していることは良いのですが (formulaの書きやすさはRubyならでは)、インストーラーの話になると事情が変わってきます。HomebrewのインストールコマンドはmacOSの工場出荷状態でも動く必要があります。こういうものにRubyを使っているのはリスクがあります。 将来的にmacOSデフォルトにRubyPythonが含まれなくなる (参考リンク

    HomebrewのインストーラーをRubyからBashに書き直しました! - プログラムモグモグ
    richard_raw
    richard_raw 2020/03/03
    これは素晴らしい。
  • bash の危険な算術式 - どさにっき

    ■ bash の危険な算術式 _ 使ってる人がいちばん多いだろうからタイトルでは bash としてるけど、ここで取り上げることは zsh および ksh 一族(家 ksh、pdksh、mksh)にも該当する。ash、dash などでは該当しない。 _ 以下のシェルスクリプトには脆弱性がある。わかるだろうか。 #!/bin/bash # "品目,単価,個数" の形式の CSV を読んで、"品目,合計金額" の形式で出力する csv="foo.csv" while IFS=, read item price num; do echo "$item,$((price*num))" done < "$csv" これ、細工された CSV ファイルをわせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

    richard_raw
    richard_raw 2019/09/02
    私のようなコピペコーダーでもやばそうと感じるので内部で完結する変数でしか使ってませんでした。