Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

MGS (マジで業務で使うシェルスクリプト)

MGS(マジ業務使いのシェルスクリプト)がまあまああるのでまとめる。いま思いついたものだけ書いてるが、思い出したら追記するかも。

説明 コマンド
スペース埋め出力から特定列を抜き出す | awk '{print $1}'
先頭から特定の文字までのみ表示 | cut -f 1 -d :
先頭の x 文字だけ抜き出す | awk '{print substr($0, 0, 30)}'
x文字ごとに改行する | fold -40
特定文字を改行に変える | tr ':' '\n'

以下各コマンドの使用例とコマンド

スペース埋め出力から特定列を抜き出す | awk '{ print $3 }

5       6       npmrc
14      8       tmux.conf
7       2       zsh/alias.zsh

↑こんな感じになってるとき、3列目だけ抜き出すには | awk '{ print $3 } でいけます

git diff --numstat | awk '{print $3}'

先頭から特定の文字までのみ表示 | cut -f 1 -d :

article を含むラインから article_id を含むラインを除いて、ファイル一覧に変換する

rg article | rg -v 'article_id' | cut -f 1 -d : | sort | uniq

先頭の x 文字だけ抜き出す | awk '{print substr($0, 0, 30)}'

minify されたファイルのように1行が膨大なものがマッチしたときに先頭30文字だけ見るときとかに使う(たまにこういうシーンがある)

rg x | awk '{print substr($0, 0, 30)}'

x文字ごとに改行する | fold -40

minify されたファイル同士を diff 取るとき、折り返しておくとうまく diff を取れることがある(取れないこともある)

diff $(cat dist/main.js | fold -40) $(cat dist2/main.js | fold -40)

特定文字を改行に変える | tr ':' '\n'

$PATH が見やすくなる

echo $PATH | tr : \\n