はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")
弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 シェルスクリプトの世界へようこそ! シェルスクリプトって何? シェルスクリプトは普段 Bash などのシェルで実行しているコマンドを並べて、まとめて実行できるようにしたものです。ファイルのバックアップ、ログファイルの解析、システムのセットアップなど、ターミナルで行っていた一連の作業をまとめてシェルスクリプトに記述することで、シェルスクリプトを実行するだけで自動的に一連の作業を終わらせることができるようになります。また、シェルスクリプトはファイルに保存することになるため、再利用するのも簡単になります。 シェルスクリプトで使うコマンドの多くは UNIX コマンドになると思います
はじめに 開発部の ikasat です。 皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような汎用プログラミング言語で書き直すことがよくあります。 外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、 SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、 rsync に相当するようなこなれたライブラリが存在しなかったりする場合があります。 そのような時は標準ライブラリの subprocess モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。 しかしながら、Python のチュートリアルペ
先日Windows向けの作業のちょっとした自動化のためにPowerShellのスクリプトを書いたので、少し躓いたポイントを書きます。 大人しくLinux版のPowerShellもインストールします WSL2のEmacsから快適に編集するためにシンタックスなどのエラーレポートなどがやはり欲しいですね。 Powershell - LSP Mode - LSP support for Emacs を使えば普通にLSPが利用可能ですが、インストールするためにpwshが実行ファイルとしてPATHに認識されている必要があります。 しかしWSL2上で作業しているのですから、 Windows上のpwsh.exeを使えば多重にインストールする必要がなくなるのではと考えました。 そこでlsp-pwsh-exeにpwsh.exeを追加してみたのですが、 Windows上のPowerShellをWSL2上で動かす
最近は朝型にシフトしてウォーキングを始めました。菅野です。 皆さんは日々の業務でどれぐらいExcelを用いているでしょうか? 表計算ソフトであるExcelですが、計算のみならず、グラフ描画や、文章を表形式でまとめたり、マニアックな使い方ではアニメーションの作成までできてしまいます。 エンジニア以外の方も業務で使用することが多いのではないでしょうか? しかしながら、業務上でExcelを用いると、日々の煩雑な作業が多くなりやすい印象です。 エンジニアであればVBA等を調べてマクロを作るといったことも可能ですが、一般の人にはハードルが高くなってしまいがちです。 今回はそんなExcelを用いた業務をChatGPTにPythonスクリプトを作ってもらうことで効率化してみましょう。 今回のテーマではGPT-4のモデルを使用します。 また、CodeInterpreterで対象のExcelファイルを読み込
JavaScriptランタイムのBunは、新機能としてシェルスクリプトをJavaScriptもしくはTypeScriptで記述し、特定のOSに依存せずに実行できる「Bun Shell」を発表しました。 シェルスクリプトは特定のシェルに依存するもの LinuxやmacOS、WindowsなどのOSは一般に、「シェル」(Shell)と呼ばれる機能を備えています。 シェルはコマンドラインインターフェイスなどのユーザーとの対話機能を備えており、例えばLinuxのコマンドラインで「ls」コマンドを打ち込むとファイルの一覧が返ってくるという動作はシェルが提供しています。 そしてシェルでは一般に、こうしたコマンドを複数つなげた一連の動作をスクリプトとして定義し実行できる「シェルスクリプト」が利用可能です。例えば、次のシェルスクリプトは、「ls」コマンドによるファイルの一覧をファイル「list.txt」に
書いてたテキストエリアがどっかいく、みたいなことがたびたびあって、スクショを定期的に取っていればこんなことにならないのに…と思っていた。 先日、Redash用に、がんばって書いたSQLがどっかいってしまい、ものすごく悲しい、という出来事があったのであ、あまりに悲しさに、重い腰を上げてスクリプトを書いた。 きのうがんばって書いたRedashクエリを保存せずに消してしまった悲しみから、Macの画面のスクリーンショットを撮り続けるスクリプトを書いて、xbar経由で毎分実行してキャプチャし続けている。Macに入ってるOCR機能も呼び出して検索できるようにしたい https://t.co/ibVVCLZszg— 趣味はマリンスポーツです (@hitode909) 2023年11月30日 やっていること 画面全体のスクショを撮って、デスクトップ内のフォルダに置いていく 複数ディスプレイを使ってる場合も
理由 びっくりした。対話シェルで実行してパフォーマンス測定すると何故かめちゃくちゃ時間がかかる。これではデータにならない。 追記 よくよく考えたらパフォーマンス測定だけの問題ではなく実際に遅くなるのだから、対話シェルから「このようなコード」を実行してはいけないということを意味しています。「このようなコード」がどのようなコードなのか発生条件はまだ特定できていませんが、少なくともシェルスクリプトにしていれば問題は発生しません。また bash 以外のシェルでも問題は発生しません。 検証結果が気になった方は、ぜひ試してみて、この話を広めてください。 証拠 実行環境: Ubuntu 22.04.3 LTS、bash 5.1.16
ちょっとした雑なスクリプト書いてそれを常に起動しておきたいときないですか?僕はあります。 しかもめんどくさがり屋なのでghq管理化のディレクトリでgemに頼って雑に書いたスクリプトがそのまま動いてほしいんです。 systemd使えば出来るんだろうなぁと思いつつ「色々面倒くさいんだろうな」と思って手を出していなかったんだけどやってみたら拍子抜けするほど簡単だったので共有です。 雑要件定義 rubyはrbenvで管理してるんでそれそのまま使ってほしい 実行ファイルをgit&ghq管理化のディレクトリでそのまま使いたい 他の場所にインストールとかコード管理ダルい bundle exec 的なのもやって依存ライブラリもうまいことやってほしい やること systemdをユーザーレベルで使うときは ~/.config/systemd/user/にファイルを置けば良い。ディレクトリ無かったら作る mkd
FreeBSD では 2024-05-31 に 200112 から 200809 への変更がようやく行われました(一度間違えて 200808 と書いてしまっていますが)。 https://cgit.freebsd.org/src/commit/?id=2e30926a68 https://cgit.freebsd.org/src/commit/?id=6e0278408e macOS は FreeBSD のユーザーランドのコマンドを使用しているため、そのせいで 200112 のままだった可能性も考えられますが、シェルやカーネルは FreeBSD のものではないため、FreeBSD が変更になったからと言って macOS が更新されるとは限らないでしょう。Solaris 10 と 11 ではディレクトリごとに準拠バージョンが異なるバイナリが配置されており以下のようになります。Solaris
はじめに Claude3Opusはものすごい能力で、手動で作成するのは面倒なプロジェクトのドキュメンテーションなどを一撃で生成してくれます。 しかし、プロジェクト全体の内容をWebのCladeには投入できないし、ファイルを1個ずつコピペするのもかなり時間を要します。 頼みのCursorもClaudeは対応していないので@Codebase機能が利用できません・・・ そこで、Pythonスクリプトを使ってプロジェクトのフォルダ構造とファイルの内容を自動的にまとめるスクリプトを作成したので紹介します! このスクリプトを使うことで、プロジェクトを200kトークンまでの単一のテキストにまとめ、Claude3Opusに簡単に投入できるようになります。 スクリプトの機能と使い方 このPythonスクリプトは以下のような機能を持っています: プロジェクトのフォルダ構造をMarkdown形式で生成。※本当は
2023年もCSSの新しい機能が続々とリリースされ、進化が早いですね。魅力的な新機能を使用するときに気になるのが、ブラウザのサポートです。 ブラウザがその機能をサポートしているかチェックし、判別するクラスを付与してくれるといえば、Modernizrですが、その更新はストップしています。 そんなModernizrに代わる、モダンCSSに対応したスクリプト、SupportsCSSを紹介します。@containerも@layerも:has()もsubgridもcolor-mix()にも対応しています。 SupportsCSS SupportsCSS -GitHub SupportsCSSはModernizrにインスパイアされたスクリプトで、モダンCSSに使用されるセレクタ・機能・@ルールなどのサポートをライブ検出できます。 CSSの@supportsもサポートしている機能を検出できますが、Sup
はじめに kill コマンドと trap コマンドはシェルでシグナルの送信と受信を行うためのコマンドです。このコマンドは意外と適切ではない使われ方をよく見かけます。この記事では kill と trap の基礎知識を解説します。 POSIX準拠のkillコマンドの構文 POSIX で標準化されている kill コマンドの使い方は次のとおりです。POSIX で標準化されているというのは移植性が高い書き方ということを意味しています。シグナル名の指定には -s オプションが必要です。そして signal_name であって signal_number でないことに注意してください。POSIX シェルの世界にシグナル番号という概念はありません。シグナル番号を指定した書き方は避ける方をおすすめします。
はじめに シェルスクリプトの世界は今後 10 年で大きく変化します。10 年という数字は切りが良い数字を持ってきただけで根拠はありません。これより長い時間がかかるかもしれませんし、もしかしたら短くなるかもしれません。しかし確実によりよい方向に変わっていくでしょう。Unix/Linux の標準コマンドはさまざまな問題を抱えています。Unix/Linux の標準コマンドに依存している限りシェルスクリプトに大きな改善はありません。これからのシェルスクリプトの世界は Unix/Linux の標準コマンドに依存しない世界です。それがどういうものになるのかをこの記事で解説しています。この記事は私の予言であり目標です。 シェルスクリプトの失われた30年の進化を取り戻す! 残念なことに、シェルスクリプトの世界は 30 年前から大きく変わっていません。それまでの間、プログラミング言語の世界、ソフトウェア開発
2024年3月29日に、圧縮ツールのXZ Utilsに、悪意のあるバックドアが仕込まれていたことが明らかになりました。そのバックドア攻撃において攻撃者が使用したスクリプトについてGoogleのエンジニアであるラス・コックス氏が解説しています。 research!rsc: The xz attack shell script https://research.swtch.com/xz-script XZ Utilsへの攻撃がどのように行われたのかという時系列順のまとめは下記記事で確認できます。 XZ Utilsにバックドア攻撃が行われるまでのタイムラインまとめ - GIGAZINE コックス氏は今回の攻撃は大まかに「シェルスクリプト」の部分と「オブジェクトファイル」の部分の2つに分割できると述べました。攻撃はソースコードをコンパイルする「make」に対し、環境に応じて適切な設定を行う「con
山市良のうぃんどうず日記 Windowsコンポーネントの「Windows PowerShell」とオープンソースの「PowerShell」 Windowsのコンポーネントである「Windows PowerShell」は「5.1」が現行バージョンであり、その後のロードマップは示されていません。 その代わり、Microsoftはオープンソースプロジェクトである「PowerShell」(旧称:PowerShell Core)を提供し、機能強化やパフォーマンス改善を実施してきました。現在の最新バージョンは「7.4.1」です。「PowerShell Core 6」のリリース以降、Windows PowerShellを起動すると、「新しいクロスプラットフォームのPowerShell」を試すように案内されるようになりました(画面1)。ちなみに、「powershell.exe -nologo」を実行すれば
2023年10月からYouTubeが導入している広告ブロッカーを検出するスクリプトについて、プライバシー保護の活動家が「EUのeプライバシー指令違反に当たる」と、アイルランドデータ保護委員会に申し立てを行っていることがわかりました。 Privacy advocate challenges YouTube's ad blocking detection • The Register https://www.theregister.com/2023/10/26/privacy_advocate_challenges_youtube/ YouTubeは2023年5月ごろから、広告をブロックできなくするための機能のテストを開始。2023年10月から本格的に施策を開始しました。 YouTubeが広告を消す「Adblock Plus」をブロックし始めて大混乱に、Adblock Plus公式も対応に乗り
こんにちは。エンジニアのすずまさです。 去年の夏頃にリードタイムの計測を始めてから、振り返りで良い気づきを得られるようになったりリードタイムを減らすアクションが生まれたりと良いことがたくさんあったので、今回はその紹介をしようと思います。 リードタイムの定義 『LeanとDevOpsの科学』では、リードタイムを「コードのコミットから本番稼働までの所要時間」として定義しています。 私たちのチームのリポジトリではブランチ戦略としてGitHub Flowを採用しており、mainへのマージと本番稼働のタイミングが近しいため「PRをopenしてからマージするまでの期間」をリードタイムとして定めて計測しました。 リードタイム計測を始めた動機 私たちのチームでは「チームのスピードがあまり出ていない気がする」という漠然とした課題感がありました。しかし、課題感はありつつも、ではどうするかと言われると具体的なア
Microsoftは2024年1月の月例アップデートの一部としてCVE-2024-20666に対処する更新プログラム「KB5034441」をリリースしているが、一部の環境では、インストール時にWindows Updateの画面にエラーコード「0x80070643」が表示され、アップデートを継続できないという問題が発生している。 Windows UpdateでKB5034441の適用時に「0x80070643」エラーが発生してしまう場合も、このスクリプトを使用すればエラーを回避して修正できる。 PowerShellスクリプトの概要 CVE-2024-20666に対処するには、WinREパーティションを更新した上で、BitLocker用にWinREの再設定を行う必要がある。今回公開されたPowerShellスクリプトは、その手順を自動化するもの。詳細は次のサポートページにまとめられている。 K
はじめに Legalscapeの顧客の中には、情報セキュリティー等の理由から社内ネットワークからの通信の宛先を制限している組織もたくさんいます。 そのためLegalscapeでは、プロダクトの動作に必要な第三者リソースの一覧を管理し、Legalscapeの導入時にはそれらのドメイン名への接続を許可するようにお願いしてきました。 しかし、現代のWeb開発は、第三者リソースが利用可能であることを暗に期待しがちです。開発者がLegalscapeの顧客背景をよく知らずに新しい依存を導入してしまうことも考えられます。またさらに厄介なのが間接依存の増加です。実際に、firebase packageの更新によって内部で呼び出しているAPIのエンドポイントが変化し、開発者が知らないうちに接続先が変わっていたということが判明しています。[1] そこで私は、CSPを使うことでサードパーティースクリプトやAPI
Illustratorのパスは「ハンドル」と呼ばれるUIを使ってセグメントの曲線を制御します。このハンドルは手動で操作するのが普通ですが、セグメントに対して左右のハンドルを均等にしたり、すべてのハンドルを同じ角度と長さにするのはなかなか大変だったりします。そこで、角度と長さを数値で指定しながら、複数のハンドルを一気に制御できるIllustrator用のスクリプトを作りました。手動では根気のいるような形でもすばやく作成できたりするので、意外と便利ではないかと思います。興味があればぜひ使ってみてください。 更新履歴などGitHubのリポジトリをご確認ください 検証バージョンIllustrator 2019〜2023 ダウンロードスクリプトをダウンロードする インストール方法ダウンロードしたファイルを解凍します。 所定の場所(後述)に「数値でハンドルを操作する.jsx」をコピーします。Wind
最近久々に近所のお祭りに行ってきました、屋台の食べ物ではりんご飴が好きな菅野です。 皆さん、普段APIのテストはどのように行っておりますか? 最近は、APIのテスト自動化を行えるようなツールやサービスも増えてきているように思いますが、当社では、OSSのテスティングフレームワークである「Karate」を用いることが多いです。 比較的簡単な構文で直感的にAPIのテストができる点がよいと思います。 しかし、いかに簡単な方法でAPIのテストが記述できるからといっても、APIの数が多いとテストを作成するのは一苦労です。 今回は、そんなKarateのテストスクリプトをChatGPTを活用して作成してみようと思います。 まず、REST-APIの仕様を定義する場合、OpenAPIを利用することが多いのではないか、と思います。 ChatGPTの開発元である「OpenAI」ではないです。自分も書いていて、紛ら
アメリカ・サンフランシスコに拠点を置くMartian Rexは7月27日(木)、『Stone Story RPG』の正式リリースを開始した。対応プラットフォームはPC(Steam)、iOS/Android。税込価格はPC版が2050円、iOS/Android版は無料となっている。 なお、PC版は正式リリースを祝い20%オフのセールが実施されており、8月3日(木)までの期間限定で1640円にて購入可能だ。 『Stone Story RPG』のなかでプレイヤーは、アスキーアートによって表現される長い闇に包まれた世界を冒険しながら、9つの“ソウルストーン”を集め世界に光を取り戻すことになる。 本作の大きな特徴として、プレイヤーがキャラクターを直接操作できない点が挙げられる。本作はキャラクターのマップ上での行動やアイテムの取得、戦闘などが全てAIによって制御されており、プレイヤーはキャラクターが冒
Jack Wallen (Special to ZDNET.com) 翻訳校正: 編集部 2023-08-10 07:45 筆者は長年にわたってLinuxを使用しており、このオープンソースOSで想像しうるほぼすべてのことを実行してきた。初期の頃から習得する必要があったことの1つは、bashスクリプトを作成することだった。Linuxを最初に使い始めたとき、筆者の所有していた33.6kモデムは頻繁に接続が途切れていた。この問題を回避するために、接続を監視するbashスクリプトを作成する必要があった。このスクリプトは、筆者がオフラインであることを検出すると、再接続を試みる機能を備えていた。 ありがたいことに、もうそのような小技を駆使する必要はない。実際のところ、現在のLinuxは非常にユーザーフレンドリーなので、bashスクリプトの作成が必要になることはめったにない。それでも、手元にあると便利な
https://b.hatena.ne.jp/site/anond.hatelabo.jp で動くスクリプトでたとえば投稿後10分以内にブクマされページに乗ったら「1 user」が「1 user セルクマ 1とか5(何分後にブクマされたか)」になる。もしマイナスなら誤判定なので無視して。 時間を置いたセルクマには効かないし普通のファーストブクマカがどれぐらいの頻度で確認してるかしらないけど5分以内や1分以内もポロポロあるのでまあ目安に。 増田のURLと一覧の時刻表示の差分を取ってます。 増田じゃpre記法でも記号が変換されるみたいだから手作業で .forEach(div => { ('.entrylist-contents-title > a') if(diffSec > とかの <> を <> に変えてね 他にも見落としあるかも 誤判定が減るから非公開ファー
AWS、自然言語による指示で面倒だったETLスクリプトを自動生成してくれる「Amazon Q data integration in AWS Glue」プレビュー公開 AWSは、ファイルやデータベースなどのデータソースからデータウェアハウスへデータを集積する際のデータ変換や転送処理などのスクリプトを、自然言語による説明から自動的に生成してくれる新サービス「Amazon Q data integration in AWS Glue」のプレビュー公開を発表しました。 Amazon Qは、昨年(2023年)11月に開催されたイベント「AWS re:Invent 2023」で発表された生成AIサービスです。このAmazon QをETLサービスであるAWS Glueと統合することも、AWS re:Invent 2023で予告されていました。 参考:[速報]AWS、Copilot対抗となる「Amazo
ChatGPT(など)にIllustrator用のスクリプト作成を依頼するときのテンプレート(と、JSXファイルの作成) ChatGPT(など)にIllustrator用のスクリプトを依頼するとき、こちらをテンプレートとして使うとよい感じです。 Adobe Illustrator用のExtendScript開発を依頼します。 以下の要件に基づいたスクリプトの作成をお願いします。 # スクリプトの目的: [実現したい具体的な機能や自動化したい作業内容を記述] # 使用言語とバージョン: - ExtendScript(ECMAScriptのバージョン3に基づくAdobe固有の拡張を含む) - Adobe Illustrator 2024対応 # スクリプトの機能要件: [実装してほしい機能の詳細リストを記述] # 制約条件: - ExtendScriptの仕様に準拠し、ECMAScriptのバ
修正前のスクリプトと生成AIとのやりとり スクリプトの前提条件は、この内容と同じです。 まず、修正前の「HTTPステータスが200以外のメソッド、URIなどを出力するスクリプト」です。 HTTPステータスが200以外のメソッド、URIなどを出力するスクリプト import os import glob import pandas as pd log_directory_output_filesを指定するCSVファイルパスを変更してください config_file = "C:/performance/scripts/config/http_status_not_eq200_requests_config.csv" アクセスログフォーマットの列名 columns = ["host_ip_address", "remote_hostname", "date", "time", "method_u
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く