min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

シェル芸

bash 「複数のShift-JISファイル(csvとpyとbat)をnkfで変換してファイル名の末尾に_utf8をつけて保存する」をワンライナーでやる

Windowsで作ったShift-JISのファイルがある。拡張子がバラバラだ。csvとpyとbatが混在している。 これを全部utf-8に変換し、かつファイル名の末尾に_utf8をつけるをコマンド一発でやりたい。最終的にこうなる。 たとえば「DB.csv」を「DB_utf8.csv」に変換す…

bash 2つのファイルを行単位で連結する(各ファイルの行を相互に取り出し合体して1行にする)paste -d "\n"

// 前回、radiko の画像をまとめてダウンロードした。 min117.hatenablog.com これを HTML に埋め込んで、ラジオ局をクリックしたらテレビでラジコが再生されるようにしたい。 <目指す完成形> iPadでアイコンタップすると ラズパイがラジコ再生を実行して …

bash ファイル一覧(ls -l)の表示サイズをGB単位で表示する(awk)

// ファイル名に「NHK」を含むtsファイルの合計サイズをGB単位で表示させたい。 コマンドの変遷 $ ls -l | grep NHK $ ls -l | grep NHK | awk '{print $5,$9}' $ ls -l | grep NHK | awk '{a+=$5; print $5,$9}' $ ls -l | grep NHK | awk '{a+=$5; print $…

fedora Apache(httpd)で cgi-bin が動かない場合の対処(permissionエラー)

// Apache から直接 pythonスクリプトを実行したいが、どうしてもエラーになる。 You don't have permission to access /test.py on this server. 環境は以下。 ・fedora 20 ・Apache/2.4.10(Fedora) ーーー 解決手順 ① まずログをみる $ sudo -s # ls -sh…

MacbookAir Python 3 をインストールする(OSX Sierra)

// Mac へのPython 3のインストールは以前の記事で行ったが、もっと簡単な方法がないか試す。以前の記事では pyenv をインストールした。 http://min117.hatenablog.com/entry/2017/01/17/233852 今回は純粋に pip だけで python3 をインストールする(Beaut…

bash 配列の要素をhtmlでテーブルに書き出す(SELECT + SORT)

bashでSQLのSELECTとSORTのようなことをやってみる。 $ vim math004.sh 出力 $ ./math004.sh >> math004.html

bash 配列の要素をhtmlでテーブルに書き出す

配列 ${PRODUCTS[@]} の要素を全てhtmlに書き出したい。このへん参照。 d.hatena.ne.jp ソースは以下。 $ vim math003.sh html に書き出して、ブラウザから見てみる。 $ ./math003.sh >> math003.html 素晴らしい。色々応用できそう。

bash 深いディレクトリパスの最深部フォルダ名だけを取り出してmvする

日常的に使うファイル移動で、深いPATHにあるフォルダを移動するときに、できるだけラクしたい。コマンド(ワンライナー)で最深部のフォルダ名を取り出して変数toに入れて使えば便利そう。 // $ ls /media/3TB/Dropbox | grep Jobs_Seiko 深いパス:/media/…

bash echo {1..11..2} で「1から11までの数を2とびで表示」する(ブレース展開)

こんなことができるとは。驚愕。 bashのそれって実はこういう書き方できるよ一覧 - Qiita 実際やってみる。 ーーー fedora20 $ bash --version $ for i in {1..11..2}; do echo "$i"; done すごい。できた。 ーーー Macだとできないみたい。 //

fedora 一括画像縮小 convert TARGET.jpg -resize 640x480 OUT.jpg

iPhoneで撮った画像を、ブログに貼る用に一括で縮小したい。fedoraでやる。たぶんRaspberryPiでもいける。 まずはファイル1個で実験。 $ convert TARGET.jpg -resize 640x480 out.jpg いいね。一瞬で縮小された。縮小後の画像もキレイ。 フォルダ内の全てのJ…

PHP フォルダ内の全てのテキストファイルの中身を1ページ内にまとめて表示する

Apacheで公開している自宅サーバのフォルダ内に、複数のテキストファイルがある。 全てのテキストファイルの中身を確認したい。1つ1つ開いていくのは大変なので、index_txt.php をクリックするだけで、全てのテキストファイルの内容を1ページに表示できるよ…

bash フォルダ内のテキストファイルの文字コードを一発で調べるコマンド

テキストファイルが4つあるが、このうち1つだけが文字コードが違っている。 $ ls -shal それぞれのファイルの文字コードを、コマンド1行(ワンライナー)で調べる。 $ for i in *txt; do echo "$i"; nkf -g "$i"; echo ===== ; done 一つだけ Shift-JIS が混…

bash 画像の撮影日時(EXIF)を「YYYYMMDD_HHMMSS」形式で取り出してファイル名に付ける(awkとsedで)

iPhoneで撮ったシンガポール旅行の写真を、Macの「写真」アプリに取り込み&書き出しを行ったら、ファイル名が「IMG_0775.JPG」のようになってしまった。これではいつとった写真か分からない。 ーーー (やりたいこと) IMG_0775.JPG ↓ ①ファイル内に持って…

bash awk ファイル一覧(ls)の毎行ごとに容量の合計を表示する

// 大量の動画ファイルをブルーレイ(片面25GB)に焼いていくけど、どれとどれを焼けば合計で25GBか?を考えるのが面倒。こういうのこそコンピュータにやらせる。 ーーー 毎行ごとにファイル容量の合計を出す $ { for i in *{ts,mp4}; do ls -shal "$i" | aw…

bash awk テレビ録画した動画ファイルの容量がGB超のものだけを一覧化してサイズ合計を表示する

// 録画した地デジ動画ファイルが溜まっているので、容量の大きい(GB超のもの)を取り出してブルーレイに焼きたい。動画はこんな感じ。 $ ls -shal | grep NHK.*ts.*mp4 サイズ(第1列)がギガバイト(G)のものだけにする。 $ ls -shal | grep NHK.*ts.*mp…

bash trapでctrl+c(シグナル)を捕捉したらコマンドを実行する

シェルプログラミング実用テクニック p379 ハト語に変換する(シグナル処理)を書いて実行してみる。 ・コンソールで「hato」と入力すると「ポ」と返ってくるようにする。 ・ctrl+c(終了シグナル)を補足して、終了できなくする。 ソースはこれ。シグナル(…

シェル芸 awkでASCIIアート出力

Twitterかどっかで拾ったこの画像。たぶんシェル芸勉強会か何かの画像だろう。 この人の技術も何か関係してそうだけど。 qiita.com どこで拾ったか忘れた。 ーーー この画像のソースをそのまま書いてみる。 $ vim suddun_death.sh 何が起きるかは分からない…