もやぶろ

moyashidaisukeのブログだからもやぶろ。フリーランスのエンジニアのダイスケです。プログラム関連とかギター関連とか旅行関連とか色々。

用途別・個人的良く使うコマンドチートシート

メモ帳に書いてたのを雑に公開。小技系が多いです。

動作環境はMac + zsh環境がメインで、たまにlinuxです。たまにオプションとか違う場合もありますのでご注意。でも大体動くはずです。

随時追記します。

ファイルの行数

単純にカウント

cat hoge.txt | wc -l

行数の監視

watch -n 1 'cat hoge.txt | wc -l'

ログファイルとか、バッチの進捗確認に。

ログファイルの特定の項目を抜き出す

基本

cat xxxxx.log| awk '{print $7}'

$7は特定の項目のインデックス。数えるようりも適当に数字変えて動かしてみた方が早い。

特定の文字列が含まれる行のみ

cat xxxxx.log | grep info |awk '{print $7}'

infoに特定の文字列を設定

特定の文字列が含まれる行を除外

cat xxxxx.log | grep -v info |awk '{print $7}'

infoに特定の文字列を設定

複数列表示する

cat xxxxx.log| awk '{print $7 "\t" $8}'

tab文字で区切って出力するとエクセルとかに貼り付けた時に見やすい

結果の個数をカウントする

cat xxxxx.log |awk '{print $7}' | sort -n | uniq -c | sort -n

結果文字列を置換する

cat xxxxx.log |awk '{print $7}' |  sed s/hoge/fuga/

↑だとhogefugaに置換する。fugaを空にすれば削除になる

コマンド履歴

検索する

history 0 | grep ls

0をつけると全部対象になる

検索結果から実行する

!100

historyの番号を指定して実行できる

ディレクトリ

権限を指定してディレクトリ作成

sudo mkdir -m 777 hogedir

ファイル名検索

find . -type f -name "*.text"

ファイルの中身で検索

 find . -type f -print | xargs grep hoge

ファイルをマージする

ディレクトリ配下全部

cat ./* > merge.txt

今のディレクトリ配下のファイルをがっちゃんこしたファイルを作成。

特定のファイル

cat hoge.txt fuga.txt > merge.txt

その他

今のディレクトリをfinderで開く

open .

jsonを整形する

jqがインストールされてる前提。jqはいっぱいあるけど、とりあえずこれが一番使う。あとはヘルプみながら頑張る。

直接

echo '{ "name"   : "John Smith",
  "sku"    : "20223",
  "price"  : 23.95,
  "shipTo" : { "name" : "Jane Smith",
               "address" : "123 Maple Street",
               "city" : "Pretendville",
               "state" : "NY",
               "zip"   : "12345" },
  "billTo" : { "name" : "John Smith",
               "address" : "123 Maple Street",
               "city" : "Pretendville",
               "state" : "NY",
               "zip"   : "12345" }
}' | jq .

ファイルから

cat hoge.json | jq .

クリップボードから

pbpaste | jq .

pbpasteがクリックボードからechoするコマンド。地味に便利。