一つの記事にするほどじゃないけど知っておくと業務がスムーズに進め系のものを備忘録的な感じで記載していきます。
XLSXをCSVに変換
Linuxのコマンドラインでxlsxをcsvに変換する
Gnumericスプレッドシートアプリケーションには、さまざまなスプレッドシート形式間で変換できるssconvertというコマンドラインユーティリティを使用する
導入方法
MAC
$ brew install gnumeric
変換方法
$ ssconvert sample.xlsx sample.csv
正規表現での\bがバックスペースにうまくマッチしない
制御文字のバックスペースがバッチ連携で悪さしていた,
→正規表現でマッチさせて取り除こう
特殊な文字の入力(エスケープシーケンス)
エスケープシーケンスで入力する時,バックスペースは\b
みたいなので
↓確認の為,こんな感じの簡単なトリム処理書く
# coding: utf-8
import re
before = "hogehoge^H^Hfugafuga"
after = re.sub(r'\b', '', before)
print after
実行
- 理想
- 出力結果: hogehogefugafuga
- 実行結果
- 出力結果: hogehofugafuga
全然マッチしない......
↓どうやら正規表現では\b
は単語境界?にマッチするみたい(知らない)
正規表現の基本
色々調べると**角括弧 [ ]**で囲むとバックスペースにマッチするようになるみたい
\bはバックスペースでなく単語境界なので正規表現でうまく動作しない
なので先ほど処理を修正して
# coding: utf-8
import re
before = "hogehoge^H^Hfugafuga"
- after = re.sub(r'\b', '', before)
+ after = re.sub(r'[\b]', '', before)
print after
実行
- 理想
- 出力結果: hogehogefugafuga
- 実行結果
- 出力結果: hogehogefugafuga
うまくマッチしてトリム処理ができた🎉
git系
1. 間違えてローカルのmasterブランチに色々コミットしてしまった
作業ブランチを間違えてやっちゃった系です.....
リベースとかやってどういう状態かわからなくなった時に便利なもの
※まだpushはしていない状態です
ローカルのmasterを、強制的にリモートのmasterに合わせる
1) リモートの最新を取ってきておいて・・
$ git fetch origin master
2) ローカルのmasterを、リモート追跡のmasterに強制的に合わせる!
$ git reset --hard origin/master
2. コミットまとめ方
切り戻し作業とか発生するとまじで見にくいからcommitをまとめて欲しい
$ git log --oneline
d4ae0d4 (HEAD -> rebase_test_branch) テスト11
7886786 テスト10
81c556d テスト9
9e684f2 テスト8
b6dcb76 テスト7
d54a9e2 テスト6
aa2b39c テスト5
7388fb8 テスト4
de0130d テスト3
698dbd6 テスト2
d4fa3ad テスト
ab55c90 (origin/master, master)
こんな感じのコミットがあるとする
commitID d4fa3ad
~ d4ae0d4
をまとめる
d4fa3ad
の一個下の ab55c90
をrebaseする際に指定する
$
pick d4fa3ad テスト1
pick 698dbd6 テスト2
pick de0130d テスト3
pick 7388fb8 テスト4
pick aa2b39c テスト5
pick d54a9e2 テスト6
pick b6dcb76 テスト7
pick 9e684f2 テスト8
pick 81c556d テスト9
pick 7886786 テスト10
pick d4ae0d4 テスト11
こんなのが出てくるので↓のように修正する
$ git rebase -i ab55c90
pick d4fa3ad テスト1
s 698dbd6 テスト2
s de0130d テスト3
s 7388fb8 テスト4
s aa2b39c テスト5
s d54a9e2 テスト6
s b6dcb76 テスト7
s 9e684f2 テスト8
s 81c556d テスト9
s 7886786 テスト10
s d4ae0d4 テスト11
これを :wq
で保存するとコミットメッセージの修正が表示されるので↓のようにrebaseのコミットメッセージを入力する
※この時まとめた分のコミットメッセージがしたの方に出てくるか残すか残さないかは個人の判断かなと思います。
# This is a combination of 10 commits.
コミット内容をまとめた
↓ログ確認
$ git log --oneline
5477904 (HEAD -> rebase_test_branch) コミット内容をまとめた
ab55c90 (origin/master, master) Merged in feature/infra_task4 (pull request #44)
フォームの自動補完(サジェスト)を無効化する
autocompleteという属性にoffという値を指定するだけ
formタグに指定して全体に適応
<form method="post" action="/" autocomplete="off">
<!-- 省略-->
</form>
inputタグに指定して個別に適応
<form method="post" action="/">
<!-- 省略-->
<div>
<label for="text">氏名:</label>
<input type="text" id="name" name="text" autocomplete="off">
</div>
</form>
PHP
var_dumpで省略しないで文字列表示する
php.iniを変更するのはあれなので
$hoge = "めちゃ長い文字列めちゃ長い文字列めちゃ長い文字列めちゃ長い文字列めちゃ長い文字列めちゃ長い文字列めちゃ長い文字列めちゃ長い文字列";
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);
ini_set('xdebug.var_display_max_depth', -1);
var_dump($hoge);
exit();
npmのversion関連
npmのバージョンを調べたくてhelpでコマンド調べたら3つくらい出てきて?になったのでメモ
$ npm --help version
のコマンドを叩くと以下の3つの候補が出てくる
$ npm -v
$ npm view version
$ npm ls
それぞれがどういう時に使うものなのか
npm -v
npm自体のバージョン表示
使い方
$ npm -v
6.4.1
↑みたいな感じでnpm自体のバージョンが表示される
npm view version
npmで管理しているパッケージのバージョン表示
使い方
$ npm view {パッケージ名} version
パッケージ名の部分にパッケージ名を入れることでバージョン情報を表示する。
例: npm require
$ npm view require version
2.4.20
npm ls
インストールされているパッケージのバージョンを表示する
$ npm ls
インストールされているパッケージだけではなく,そのパッケージを動かすために
必要な他のパッケージについても表示される