仕事メモとか

仕事中に調べた情報とか知ったことをメモしています。
unixコマンド, vim, oracle, putty, postgresql, bash, EXCEL, python, SQL全般 など。
最近は tableau, movabletype とかも触ったりしています。
雑な読書感想とかはこちら

タグ:unix

改行ありファイルのデータをカンマ区切りにする。

最後に改行がある場合はカンマにしない。

という状況のものを、bashで実現。

DATA=$(cat $DATA_FILE | perl -pe 's/\n/,/g')
if [ "${DATA: -1} = "," ]; then
DATA=${DATA/%?/}
fi

最後の1文字の指定の-1 の前に半角スペースが必要みたい。

入門bash 第3版
Cameron Newham
オライリージャパン
2005-10-27

ファイルの行数を調べるときはwcコマンドを使 います。

wc -l

とかやると行数とファイル名が取れるのです が、if文で行数判断しようと思ったら、行数が邪 魔。 ということで調べていたら、grepという手にあ たりました。

grep -c '' {ファイル名}

とすると、純粋に行数だけ出してくれます。 また、wcに存在していた「実際には行数ではな く改行コードで判断」による、最後の行に改行 無いと1減る問題も解決するみたいです。

参考文献

http://rcmdnk.github.io/blog/2015/09/04/computer-bash/

tarで圧縮するときに、元ファイルを消す方法無 いのか、と思って調べたら、やっぱりありまし た。

--remove-files

ということで、圧縮祭りがもう少し楽になりま した。

但し、最後に付けないと変な挙動しました。

例) tar -cfvz 2009.tar.gz 2009 --remove-files

出力した結果からランダムで1000行抜き出 したい、みたいな時に使う。

shuffle -o 出力ファイル入力ファイル これでランダムになる。

なんかの結果を出したものをランダムで数行取 りたい場合

echo "{複数行のデータ}" | shuffle | head

unixのコマンドじゃなくて、linuxのコマンドか も?


tgzファイルの部分解凍

巨大なtgzファイルの中の一部を解凍を解凍した い場合 tar xzvf {圧縮ファイル}.tgz {解凍したいディレク トリやファイル名}

これで部分解凍可能

↑このページのトップヘ