シェル
% date -j -f "%Y-%m-%d %T" "2020-10-25 11:18:00" "+%s" 1603592280 % date -j -f "%s" "1552735080" "+%Y-%m-%d %T" 2019-03-16 20:18:00
バックアップスクリプトでよくやるのだけど、毎回書き方を忘れているのでメモ。 # -execオプションを使う版 # {} が対象のファイルパスに置換されて実行される。 # -mtime +3 => 最終更新日時が、過去〜4(3+1)日前のファイルを表示する find ${TARGET_DIR} -…
シェルスクリプトを書くときに、アタマに添えるおまじないをメモ。 #!/bin/sh # set -e # スクリプトの実行中にエラー(exit 0以外)が発生すると、そこでスクリプトが終了させる。 # というかつけてないと、エラーしても次の処理に進むから怖い。 # # set -u …
そういればやり方知らなかったのでメモ。 # これで標準出力できる。 cat << EOS hoge fuga piyo EOS # ヒアドキュメント内で変数展開できる。 # 標準出力になるので変数に代入したいときはバッククォート使う。 params=`cat << EOS { "login_id": "${LOGIN_I…
よく忘れるのでメモしておく。 # # 入力値チェック/セット # echo 'CloudFrontログを抽出します。' echo '対象ドメインを番号で指定してください' echo ' 1) a.example.com 2) b.example.com 3) c.example.com ' read num case ${num} in 1) DOMAIN='a.examp…
シェルのtestコマンドの理解が怪しかったので、使い方をメモしておく。 #!bin/sh # $?==0 で正常終了 # 数値の比較 ## 1 == 1 test 1 -eq 1; echo $? ## 1 != 2 test 1 -ne 2; echo $? ## 1 < 2 test 1 -lt 2; echo $? ## 2 > 1 test 2 -gt 1; echo $? ## 1 …
クロス集計をBash(とawk)だけで実装した話 より学んだことメモ 処理の流れ 1.必要なカラムの抽出 2.クロス集計の行と列の要素を取り出す。 # クロス集計表の行になる部分を抽出してユニーク化&ソート cat table.csv | cut -f 1 -d , | sort -u > rownam…
初めの方の問題見たらとてもピュアだった。2012年10月27日 Hbstudy#38 ファイルの一括変換 # カレントディレクトリの中からUtilの文字をHogeに変えてDesktopに保存する。 # ※basenameはディレクトリ名を除外したファイル名を返すコマンド grep -r "Util" ./.…
https://b.ueda.tech/?post=20180901_shellgei_37 にて学んだことメモ。 Q1 FizzBuzzのアニメーション seq 100 | gsed '0~3s/.*/Fizz/;0~5s/.*/Buzz/;0~15s/.*/FizzBuzz/' | # 0~3s みたいな書き方で3行ごとに置換を行う gawk '{printf("%08s\n", $1)}' | # …
https://b.ueda.tech/?post=shellgei_38 より学んだことメモ xxd コマンド 対象を16進数でダンプする/16進数から復元する。 pオプションはpostscript形式でダンプするの意味。 # ダンプする echo "ほげほげ" | xxd -p # 復元する echo "ほげほげ" | xxd -p |…
$ echo -n '{"hoge": "fuga"}' | base64 eyJob2dlIjogImZ1Z2EifQ== $ echo -n 'eyJob2dlIjogImZ1Z2EifQ==' | base64 -D {"hoge": "fuga"}
メモ $ brew install coreutils $ brew install gnu-sed $ brew install gawk $ brew tap homebrew/dupes $ brew install homebrew/dupes/grep 第29回シェル芸勉強会:福岡サテライト : ATND より転載
CSVのデータを集計を、シェルでさくっと終わらせたいときのためのメモです。 まずは文字コードを変換 だいたいCSVはSJISであることが多いので、シェルで正しく処理できるようにUTF-8に変換します。 # 使える文字コード一覧 iconv -l # f(from)の文字コード #…
# ファイル find ./ -type f | grep old_word | awk '{print $0 " " $0 }' | awk '{sub("old_word", "new_word", $2); print $1 " " $2}' | xargs -n2 mv # ディレクトリ find ./ -type d | grep old_word | awk '{print $0 " " $0 }' | awk '{sub("old_word…
たまにしか使わなくて忘れていることがあるのでメモ。 随時追加していく。 # SSLエラーを無視 curl -k http://example.jp/ # リダイレクト対応 curl -L http://example.jp/ # リクエストにヘッダー追加 curl -H "key1: val1" -H "key2: val2" http://example…
便利かどうかはわからないけど、いつか使うかもしれないコマンド・オプションを随時追加していく。 # 素数を出す # factorコマンドは素因数分解するコマンド seq 1 20 | gfactor | awk 'NF==2{print $2}' # 文字の16進数変換 # -p で 16進数にして出す # -p …
随時追加していく。 # 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 …
基本系 eオプションにコマンドを渡して使う コマンドにはs(置換), d(行削除), p(行抽出)などがある。 cat input.txt | sed -e 'コマンド' # もしくは sed -e 'コマンド' input.txt 使用例 # 正規表現で文字列の置換を行う cat input.txt | sed -e 's/xxx/XXX…
awkのことをきちんと知っておこうと思って、下記を読ませていただいたときのメモ書きです。 http://antibayesian.hateblo.jp/entry/2014/09/15/162605 条件マッチする行を抽出 # 10にマッチする行を抽出する。 awk /10/ trees.txt # 両方の条件を満たす行を…
処理対象ファイル a.txt 1. abc 2. def 4. xyzb.txt 1. 123 4. xyz 5. 456 cat ファイルを結合する $ cat a.txt b.txt 1.abc 2.def 4.xyz 1.123 4.xyz 5.456 paste ファイルを横に並べて結合する $ paste a.txt b.txt 1.abc 1.123 2.def 4.xyz 4.xyz 5.456 j…
ファイルの場合 find . -type f -print | xargs chmod 644 ディレクトリの場合 find . -type d -print | xargs chmod 755
DLLコピー C:\app\cygwin\bin\cygwin1.dllを C:\Windows\System32配下にコピーする。 環境変数設定 システム環境変数のPATHに下記を追加。 C:\app\cygwin\bin C:\app\cygwin\usr\bin C:\app\cygwin\usr\local\bin 最後に 再度ログインする。これで使える。※C…
書式 du [オプション] [ディレクトリ名|ファイル名] 主なオプション -a # ディレクトリ内の各ファイルに対しても使用量を表示する -b # 結果をバイト単位で表示する -k # 結果をキロバイト単位で表示する(デフォルト) -s # 合計サイズのみを表示する -h # …
よく忘れるのでメモ。 # カレントディレクトリ以下 hoge を含むファイルを確認 grep -rn "hoge/" ./. # hoge を fuga に一斉置換 grep -rl "hoge" ./. | xargs sed -i -e "s/hoge/fuga/g" ${1} # コピペ用 FROM=hoge TO=fuga grep -rl "${FROM}" ./. | xargs…