memorandum

IT技術の習得を記録します

全角英数字を半角英数字に 半角カナを全角カナに nkfで変換

encode_halfwidth = NKF.nkf('-m0Z1 -W -w', "AABBBBBAAアアアああアアアアアアアアアアアア")

=>

AABBBBBAAアアアああアアアアアアアアアアアア 

-m[BQN0] MIME(電子メール用のフォーマット)を解読する

エンコーディングの変換のみをするならば以下を指定しておくべき

-m0 MIME の解読を一切しない。

-Z[0-3] X0208 のアルファベットといくつかの記号を ASCII に変換する

-Z -Z0 X0208アルファベットといくつかの記号を ASCII に変換する
-Z1 X0208空白(いわゆる全角空白)を ASCII の空白に変換する
-Z2 X0208空白(いわゆる全角空白)を ASCII の空白2つに変換する
-Z3 X0208の>、<、”、&、を '>', '<', '"', '&' に変換する

X0208(全角) ASCII(半角)

出力フォーマットの指定 -j -s -e -w -w16

-j ISO-2022-JP (7bit JIS) を出力する(デフォルト)
-s Shift_JIS を出力する
-e EUC-JP を出力する
-w UTF-8 を出力する(BOMなし)
-w 16 UTF-16 LE を出力する

入力フォーマットの指定 -J -S -E -W -W16

-J 入力に JIS を仮定する
-S 入力に Shift_JIS と X0201片仮名(いわゆる半角片仮名)を仮定する。-xを指定しない場合はX0201片仮名(いわゆる半角片仮名)はX0208の 片仮名(いわゆる全角片仮名)に変換される
-E 入力に EUC-JP を仮定する
-W 入力に UTF-8 を仮定する
-W16 入力に UTF-16LE を仮定する

mysqlで実行した命令文の出力結果をクリップボードにコピー

developmentというデータベースにlist.sqlを実行しre.csvに出力

mysql -u root development < list.sql > re.csv


以下で出力結果をクリップボードにコピー

pbcopy < re.csv

そのまま
スプレッドシートなどに貼りつけると、綺麗にペーストされる

git で管理する必要のないファイルは .gitignoreに記入する

$ cat .gitignore
*.csv
*.gem
*.rbc
/.config
/coverage/
/InstalledFiles
/pkg/
/spec/reports/
/spec/examples.txt
/test/tmp/
/test/version_tmp/
/tmp/

# Used by dotenv library to load environment variables.
# .env

## Specific to RubyMotion:
.dat*
.repl_history
build/
*.bridgesupport
build-iPhoneOS/
build-iPhoneSimulator/
#csvファイルはいらない
*.csv
# /.configフォルダは要らない
/.config

git 基本操作

ブランチを作ってそこにマスターから移動する

git checkout -b ブランチ名

addしてcommitしてpushをする

git add 追加したいファイル
git commit -m "コメントを書く"

リモートにはじめてあげるときは下記の通りにpushする

git push --set-upstream origin ブランチ名

2回目以降は

git push ブランチ名

ブランチを消す

git branch -d ブランチ名

ステータスの確認

git status

変更箇所の確認

git diff

addした後の変更箇所の確認

git diff —cached

mysql 複数の文字列の置換 replace / 文字列の結合 concat

下記の場合は、姓名をconcatで結合し、そこから空白文字(半角スペース・全角スペース・タブ)を置換している

replace(replace(replace(concat(last_name,first_name),' ',''),'\t',''),' ','') = '#{fullname}'

パラメーターが複数あるプログラムをシェルスクリプトから実行する

プログラムは一つだが、パラメータが複数あるとき、

$ bundle exec ruby test.rb 'aaaaa'
$ bundle exec ruby test.rb 'bbbbb'
$ bundle exec ruby test.rb 'ccccc'
$ bundle exec ruby test.rb 'ddddd'
$ bundle exec ruby test.rb 'aaaaa' && bundle exec ruby test.rb 'bbbbb'

と&&で繋げていくことも可能だが、10個以上になるとターミナルの画面もわけがわからなくなり
どこまで実行されたか管理が大変になる

シェルスクリプトでのコマンドラインの実行

このように記述したファイルをsclipts.shで保存 

bundle exec ruby test.rb 'aaaaa'
echo 'command 1 done'
bundle exec ruby test.rb 'bbbbb'
echo 'command 2 done'
bundle exec ruby test.rb 'ccccc'
echo 'command 3 done'
bundle exec ruby test.rb 'ddddd'
echo 'command 4 done'

ファイルを保存した場所で

$ chmod +x scripts.sh
$ ./scripts.sh

ファイルの実行が完了したら

echo 'command 1 done'

が標準入力で表示される