min117の日記

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

正規表現

WSLで Perl は使えるのかな?→ デフォで入ってた(Unixツール最高)

ハピタス登録で1,000円分になるURL WSL で Perl $ perl -v 試そうと思い立ったきっかけはコレ。 いつ買ったか忘れたけど。 某店で200円であった。 早速試してみる。 $ vim test.txt $ vim myPerl.pl $ perl myPerl.py test.txt なんっぞコレ。超便利じゃない…

正規表現を使ってモンスターを倒すゲーム「Regex Hunting」楽しい

ゲームってアホがやるものなので基本キライなんだけど、こういうのならやってもいい。 www.regex-hunting.com 課題に出された正規表現を入力してEnter押すだけ。 てかJavaScriptのエスケープのバックスラッシュがmacで打てん。どうやんだっけ? developer.mo…

bash で正規表現 for i in *jpg; do if [[ "$i" =~ ...__._ ]]; then echo "$i"; fi; done

仮にこんなファイル名の画像があるとして 179__1_.jpg を 179__01_.jpgに 179__2_.jpg を 179__02_.jpgに 180__1_.jpg を 180__01_.jpgに … コマンド一発で(ワンライナーで)できるだろうか。 できる。bashで正規表現を使えばいい。こうやる。まずは該当の…

bash 正規表現で漢字のみを抽出する ls | egrep 'DB[亜-熙]' または ls | grep -P 'DB\p{Han}'

grepで漢字のみ抽出したい。正規表現を使うからegrepならイケそう。 ls | egrep 漢字 ができれば良さそう。 サンプルはこれ。 「DB」の後ろに漢字がくる行のみ抽出したい。 いつものこのサイトを参考にさせてもらう。 orebibou.com 漢字でgrepするにはいくつ…

bash radikoの番組表を加工する(vimで最短マッチ ¥{-} 利用)stationID=FMFUKUI; curl -s http://radiko.jp/v2/api/program/station/weekly?station_id="$stationID"

きゃりーぱみゅぱみゅのラジオ面白い。探したい。何時から始まるか全国すべてのラジオ局の番組表から探したい。 まずは指定したラジオ局の番組表を取得するスクリプト作った。 $ vim myradikoBANGUMI.sh curlをラップしてるだけ。 こんな感じで使う。 $ ./my…

vimの正規表現で「CSVの列の前後」を入れ替える(ホールドバッファ機能すごすぎ)

名曲「We Are the World」 www.youtube.com 永遠に色あせない名曲。 サイモン・ガーファンクルファンとしてはやはりポールサイモン。 ビリージョエルも。最高すぎる。 ブルース・スプリングスティーン。カッコ良すぎ。 どの一人をとっても上手すぎというか、…

bash シェルで正規表現を駆使してファイル名を一括変更する

bashを使ってファイル名を整理したい。 例えばこんなファイルがあって 文字列「Perfume」で始まるファイルのうち、「Perfume」の後ろにアンダーバーが入っていないファイルだけを取り出して、そこに一括でアンダーバーを入れてやりたい。 ファイルの一括処理…

bash 仮想通貨マイニングウイルスに現実に仕込まれたソースからシェルのノウハウを学ぶ

1月に入って、ランサムウェア「GandCrab」が添付されたメールが大量に出回っているらしい。 japan.zdnet.com 復元ツールは出ているみたいだけど japan.zdnet.com ランサムウェアは影響が大きいので感染はゴメンこうむりたい。 なんて情報をあさっていたら、…

RaspberryPi3 「テレビリモコンで押したキー信号」を捕捉する cec-client | grep --line-buffered -Po '(?<=key pressed: )\w+(?= \(\d, \d\)$)'

以前の記事で、cec-clientなるプログラムを使えばRaspberryPiからテレビを操作できることが分かった。 min117.hatenablog.com 今回も cec-client を使うが、やりたいのは(電源オンオフより)もっと複雑。 リモコンで押されたキーを捕捉したい。つまりこうな…

bash grepの-oP(または-Po)オプションとは? → 正規表現にマッチした列のみ抜き出す

素晴らしい記事を発見。grep には -oPというオプションがあるらしい(-Poでも同じ)。 -o マッチした列のみ切り出す(grep | awk 正規表現 と同じ) -P Perlの正規表現を使って抜き出す とくに -P(ハイフンP)オプションについては情報がなくて探すのに苦労…

Windows ファイル名の半角空白文字をアンダーバーに置き換えるバッチ

Windowsでファイル名に半角空白が入ったファイル名は本当に扱いにくい。 例えば for /F %i in ('dir /b') do @echo %i なんてやったときに、ファイル名に半角空白があるとデリミタと解釈されちゃってtokenが複数入ってしまうなんてことになる。 // これを防…

vim キャプチャした文字列の一部を使って置き換えるホールドバッファ機能 :%s/\(¥[1-9]\),/\1/g

// カンマ区切りのcsvファイルがある。 金額の区切りもカンマになってしまっていてawkで扱いにくい。 金額の区切りのカンマだけ無くしたい。 1行目で言えば ¥8,163 を ¥8163 にしたい。 /¥[1-9], とやってキャプチャできるけど、一括置換ではフィールド区切…

bash 容量の小さい動画ファイルを一括削除する ls -shal | grep mp4 | awk '{if ($1 ~ /512/) print $1,$10}'

// HandBrakeCLI で動画の一括変換するも失敗してファイルサイズが 512KB になってしまったものがある。ファイルサイズ順で一覧化すると512KBになっているのがわかる。 min117.hatenablog.com $ ls -shalS 正常に変換されると適切なファイルサイズが出るが …

bash if文の中で正規表現を使う

// RaspberryPi や fedora の bash にて。 「あるフォルダの中の全てのファイルを調べて、ファイル名の頭が数字3桁のものだけ表示する」をやりたい。 ーーー まず「あるフォルダの中の全てのファイルを調べる」のは、超簡単。毎日やっている。 $ for i in *;…