コピペコードで快適生活

明日使えるソースを自分のために

シェルで便利だったコマンド&オプションまとめ

随時追加していく。

# grepでOR検索
cat file.txt | grep -e hoge -e fuga

# grepで前後行も出力
# -A -> 後の行数
# -B -> 前の行数
cat file.txt | grep -A 10 -B 5 hoge -e fuga

# xargsでパイプで渡された値を任意の場所に突っ込む
cat file.txt | grep "hoge" | awk '{print $1}' | xargs -IXXX grep XXX file2.txt

# tail -F をリアルタイムで grep する
tail -f production.log | grep --line-buffered "hogehoge"

# gz形式のファイルを解答せずに中身を見る
gzip -dc production.log-yyyymmdd.gz | less

# 全検索
sudo find / -name filename

# <() コマンド結果をファイルのようにして入力値として与える
diff <(seq 1 3) <(seq 2 4)

# trで文字列置換(改行コードも扱える)
cat file.txt | tr 'A' 'B' # AをBにする
cat file.txt | tr -d '\n'  # 改行を消す
cat file.txt | tr -dc 1 # => 1以外を消す

# 指定文字数で改行させなおす
# 一度改行消して、60文字区切りで改行させる
cat file.txt | tr -d '\n' | fold -w60

# ImageMagickで画像変換
convert test.png test.jpg # フォーマット変換
convert -geometry 50% testimg.png testimg.50p.png # サムネイル
convert -geometry 100x100 testimg.png testimg.50p.png # サムネイル
convert -rotate 90 server.jpg server_90.jpg # 時計回りに90度回転

# xargsで複数のコマンドを実行
# (shコマンドの中で複数のコマンドを実行させて実現する)
seq 10 | xargs -I@ sh -c 'echo @; sleep 1'

# 乱数を出力する
# /dev/urandomは乱数を出す / tr-dcで0-9以外を消す
cat /dev/urandom | gtr -dc 0-9 | fold -w 10 | head

# テキストブラウザ
w3m http://google.co.jp 
w3m http://google.co.jp --dump # 表示出力

# bcコマンド 電卓
# オプション obase(output10進数)
# オプション ibase(input16進数)
echo 'obase=10;ibase=16; F + F' | bc

# ファイルに差分があるかどうかだけ返す
diff -q a.txt b.txt
ls | xargs -IX diff -q X ~/app2/X

# グローバルIDを知る
curl ifconfig.io

# 列指定でsort
sort -k2 # 2列目でソート

# 無限ループ
while true
do
  echo hogehoge
done

# 1行無限ループ
while :; do ps aux | grep unicorn; sleep 1; done

# ディレクトリ配下のファイルの拡張子を一斉置換
for filename in *.txt; do mv $filename ${filename%.txt}.csv; done