数年前に書いていたやつ、編集が面倒になったのでそのまま公開シリーズ
前に書いた記憶があるんだけどなかったので記録
シェルでスクリプトを書いているとStringとIntの境目が曖昧で困ることがあります。
例えば日付を数値として処理したいのに文字列として扱われてしまっていたり
整数値として宣言
declare -i TODAY_DATE=”$(date +%Y%M%d)”
配列として宣言
ARR = “hoge moge foo bar”
数年前に書いていたやつ、編集が面倒になったのでそのまま公開シリーズ
前に書いた記憶があるんだけどなかったので記録
シェルでスクリプトを書いているとStringとIntの境目が曖昧で困ることがあります。
例えば日付を数値として処理したいのに文字列として扱われてしまっていたり
整数値として宣言
declare -i TODAY_DATE=”$(date +%Y%M%d)”
配列として宣言
ARR = “hoge moge foo bar”
utf-8で保存されているcsvファイルをExcelで開くと文字化けすることがありました。
これはExcelがデフォルトでShift-JIS で開こうとするためです。
解決するためにBOM(Byte order mark)を付与します。
cat <(printf “\xEF\xBB\xBF”) oldファイル.csv > newファイル.csv
久しぶりにexpectでスクリプトを書いてたら動かなくて嵌まった。
以前に書いていたエントリーを参考にしていた
今回書いていたスクリプトのshebangが #!/usr/bin/expectではなく、
#!/bin/bash だった事に起因していました。
なぜshebangが影響するかというと文字のエスケープが必要になるようです。
× expect “Enter PEM pass phrase:”
○ expect \”Enter PEM pass phrase\:\”
前者はexpectを直接実行した場合でエスケープがいらないのに対し、
シェルスクリプト内でexpect -c として利用する場合はエスケープが必要になります。
ちょっと嵌まったので書いておきました。
weechatを導入してから死ぬほど見づらい。
我慢できなくなってきたので調べたら「Ricty」というフォントが良さそうなのでインストールした。
brew tap sanemat/font
brew install rict #結構時間かかるけど放置
自分の環境のFontsディレクトリにコピー
cp -f /usr/local/Cellar/ricty/3.2.3/share/fonts/Ricty*.ttf ~/Library/Fonts/
fc-cache -vf #フォントのキャッシュをリビルド -v 詳細表示 -f 強制オプション
後はiTermのPreferenceから Profiles > Text > Changefont でRictyを選択。
Anti-aliasedにもチェックを入れないとまだ見づらいので注意。
今更だけどエントリ−書いていなかったので。。
yumのレポジトリに登録
cat <<EOF > /etc/yum.repos.d/s3tools.repo
#
# Save this file to /etc/yum.repos.d on your system
# and run "yum install s3cmd"
#
[s3tools]
name=Tools for managing Amazon S3 - Simple Storage Service (RHEL_5)
type=rpm-md
baseurl=http://s3tools.org/repo/RHEL_5/
gpgcheck=1
gpgkey=http://s3tools.org/repo/RHEL_5/repodata/repomd.xml.key
enabled=1
EOF
ツールのインストール
yum installs3cmd
s3cmd --config コマンドで動的に設定ファイルを作ってもいいのですが、
面倒な場合は下記コマンドで作られます。
access_key と secret_key はそれぞれご自身のものを設定して下さい。
AWSのコントロールパネルのMy AccountからSecurity Credentials を辿ると確認出来ます。
cat <<EOF >~/.s3cfg
[default]
access_key =
bucket_location = ap-northeast-1
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase =
guess_mime_type = True
host_base = s3-ap-northeast-1.amazonaws.com
host_bucket = %(bucket)s.s3-ap-northeast-1.amazonaws.com
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host =
proxy_port = 0
recursive = False
recv_chunk = 4096
reduced_redundancy = False
secret_key =
send_chunk = 4096
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = False
verbosity = WARNING
EOF
基本的なコマンド
s3cmd ls #s3上のトップディレクトリ表示
s3cmd put ./hoge s3://hoge.com/ #ファイルのアップロード
s3cmd get
s3://hoge.com/foo #ファイルのダウンロード
s3cmd sync ~/PATH/directory s3://hoge.com/ #rsyncと同様に差分の転送など
もっと詳しく見たい方はこちらへどうぞ http://s3tools.org/usage
数年前に書いていたやつ、編集が面倒になったのでそのまま公開シリーズ
vimにclipボードからペーストするとインデントが激しくずれるやつ
:set paste
編集中のバッファの内容にコマンドを実行したい場合
:w !command
例えばクリップボードからランダムな数値をペーストしたあとにソートしたい時など
:w !sort
export EDITOR=vim
svn export {FilePath|URL} Path2
これで.svnファイルが除外された形で保存されるため、容量が圧縮できる。既存環境で約1/4になりました。
svn commit 時にCONFLICTが発生した場合の対処。
自分のファイルを消す。
マージする。
revertする。
conflictした場合は
svn: Aborting commit: '/svn/hoge.txt' remains in conflict
このようなメッセージが出て、どうするか聞かれます。
rコマンドでmergeして、その後該当ファイルを編集します。
<<<<<<< .mine hoge
moge ======= foo
bar
>>>>>>> .r2
ファイルを開くと上記のようになっています。
問題がなければ、<で始まる行、"
=======
"、>で始まる行を削除して保存しましょう。
テキストで見られるようになるよ。
mysqlbinlog /var/lib/mysql/sv**.example.com-bin100 > /tmp/binlog.txt
sed -n ‘/server-id/p’ /etc/my.cnf
-n でパターンスペースをホールドスペースに突っ込む
アクションpでプリント
grepみたいに使う。正規表現などでsedに対応しているregexを使いたい時など。
echo unko | tr [:upper:] [:lower:]
UNKO