ls の実行結果を for 文で処理するワンライナー
やりたいこと1階層上に複数あるディレクトリの中にあるファイルを今いるディレクトリに全てコピーすること。つまり、これを↓Before$ tree -c.├── a │ └── a.text ├── b │ └── b.text └── c └── c.text こうしたい↓After$ tree -c.├── a │ └── a.text ├── b │ └── b.text ├──...
View Articlenpmを壊しちゃった?
社内で勉強会があり、node.jsを使った開発なので、npmを使ったのですが、勉強会のHandsOnの通りやっても動かない。$ npm install npm ERR! code E401 npm ERR! Unable to authenticate, need: Basic realm="GitHub Package Registry" GitHub...
View Article独自のdocker-compose.ymlをコマンドラインで使う
独自のdocker-compose.ymlプロジェクトのdocker-compose.ymlを独自に書き変えたい場合docker-compose -f docker-compose.myenv.yml...
View Articleffmpegでフォルダの中を一気に処理する
aviフォルダの中の動画ファイル(aviなど)を全部mp4に変換するavi2mp4.sh# ffmpeg -i avi/MOVI0192.avi mp4/MOVI0192.avi.mp4ls avi/ | xargs -i ffmpeg -i avi/{} mp4/{}.mp4 フォルダの中のmp4を一個のmp4に連結するconcat.shecho-n> list.txt ls mp4/ |...
View ArticleCIでテストするときとかにKubernetesで全部のPodがREADYでRunningになるまで待つヤツ
CIですべてのPodの準備ができたことを確認してからテストを実行したかった時に使いました。 kubectlでnamespace内のすべてのPodに対し、READYがn/nになってRunningになるまで待ちます。$ kubectl -n dev-test get pod NAME READY STATUS RESTARTS AGE aaaaaaaaaaaaaaaa 1/1 Running 0 16m...
View ArticleElixirの環境構築を一発で終わらせる!
概要elixirを始めるにあたって、依存するアプリケーションやerlangのインストール、erlenvとexenvを用いたバージョン管理をするのが大変そうだと思ったので対話形式のスクリプトを作ってみました環境macOSbrewはインストール済みanyenvを使うのでない人はスクリプト内で入れるスクリプト#!/bin/bash# brewで必要なファイルを入れるTARGETS=(...
View Articleプロセス(コマンド)の実行をファイルとして他のプロセスと連携する
Process SubstitutionGNU Bash Manual 3.5.6 Process Substitution>(list)プロセスをファイルとして、そこに他のstdout/stderrをファイルとして書き出せる。$ cat <<EOF > >(grep -v b) > a > b > c > EOF a c grep -v...
View Article【コピペOK】秒で複数のファイルに作るコマンド
はじめに現場で、複数のファイルを作るときに使っているbash関数を紹介します。1.準備ターミナル(winの場合、Git Bash?)を開いて、以下のコマンドを実。.bash_profileにbashrcを読み込むように設定。echo 'source ~/.bashrc' >> ~/.bash_profile 2.関数の登録受け取った引数分のフォルダを作る関数を登録echo...
View ArticleGo言語向けbash completionを使いたいという願望を叶える方法
Go言語のコンパイラ、インタプリタ実行時にコマンドがTAB補完出来ず不便な思いをしていました。探したところ、gocompleteと言う拡張機能をインストールするとbash completionの様にTAB補完出来ることが分かりました。故に、利用方法を備忘録メモとして残しておこうと思います。拡張機能の入手$ go get -u...
View Articleこの行がマージされたプルリクを見たい
最近よくコードリーディングをしているので、GitLensを重宝しています。https://marketplace.visualstudio.com/items?itemName=eamodio.gitlensコミットIDやコミットメッセージを簡単に見られるので、「なぜこの変更が行われたのか」を確認することができます。神。ただ、この情報だけでは足りず「このコミットがマージされたプルリクを見たい」となる...
View Articleシェルスクリプトで特定の列を抽出する
【追記】もっと良い方法があったらコメントお願いします。列を抽出するこういうファイルがあるとする。abc.txtaa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx...
View ArticleMacのターミナルで役に立つ基本動作
概要Macでプログラミングを行う際に、ターミナルを利用することが多いと思います。今回は、ターミナルで使用する最低限のコマンドについて、簡単にまとめてみました。まずは開いてみるまずは、Macでターミナルを開いてみます。ターミナルは、Macの初期状態ではDocに存在しないため、自ら探して開く必要があります。開く方法は複数ありますが、最も簡単な方法はSpotlight検索を利用することです。手順は以下のと...
View Articleシェルスクリプトでシェル関数・外部コマンドのタイムアウトを行う関数の実装
指定された時間でタイムアウトさせるコマンドとして timeoutコマンドがあります。しかしすべての環境でインストールされているとは限らず、macOS では Homebrew などで GNU coreutils を別途インストールしなければ使えません。また timeoutコマンドは外部コマンドであるためシェル関数には使えません。そこで同等の機能を持つシェル関数を実装しました。POSIX 準拠であるため...
View Articlebashで、「ファイルが存在する場合は削除」する。
rm exist.txt 2> /dev/null もし存在しないならこのコードは標準エラー出力になります。そして標準エラー出力の2を/dev/nullに捨てます。参考https://qiita.com/i35_267/items/158cd20ed26f73a3d894
View Articleターミナルが見辛かったので、カスタマイズした
見た目をこんな感じにシンプルにまとめました。MacOSがcatalinaのため、初めはzshの設定になっていました。参考記事がbashだったため、デフォルトをbashへ変更しました。●起動時にbashを読み込む方法 HOMEに.bash_profileを作成して以下を記述。.bash_profileif [ -f ~/.bashrc ] ; then . ~/.bashrc fi...
View Articleシェルスクリプトで相対パスを絶対パスに変換する正しい方法
問題点某所でファイルの相対パスから絶対パスに変換する方法として以下のようなものが紹介されていました。path="$(cd$(dirname"$1")&&pwd)/$(basename"$1")"これにはいくつか問題がありますが、わかるでしょうか?↓答えcdの引数がダブルクォートで括られていないので空白が入るパスを正しく扱えない-で始まるパスをオプションと誤認識する改行で終わるパスを正...
View Articleシェルスクリプトで相対パスと絶対パスを相互に変換する関数
こちら(シェルスクリプトで相対パスを絶対パスに変換する正しい方法)の記事の続きです。相対パスを絶対パスに変換する方法# set -e していれば 下記の || exit $?...
View ArticleLinuxコマンドメモ
今いるディレクトリ以下にある特定の拡張子ファイルを連結して表示 find -type f | grep ".ly$" | xargs -d "\n" more |cat -n
View ArticleSlackで特定の人たちがいる場合channelをleaveするためのscriptを書いてみた
今日Slackにおいては豊富なAPIが用意されている気がしますそれらを組み合わせることによりいろいろなことが出来るきがします今回はconversations.list (チャンネル一覧の取得)conversations.members (指定したチャンネルにおけるメンバー一覧の取得)conversations.leave...
View ArticlebachrcでなんやかんやしてAtCoderのコンテストの提出等にかかるコストを最小限にした話
想定条件atcoder-cliおよびonline-judge-toolsをインストール済み未インストールの方はこちらを参考にしてください。私の環境Ubuntu18.04私のAtCoder用ディレクトリの概要home┣ AtCoder ┣ ABC160 ┣ a.cpp ┣ b.cpp ┣ c.cpp ︙ ┣ ABC161 ┣ ABC162 ︙ ┣...
View Article