虎(牛)龍未酉2.1

記録帳|+n年後のジブンが思い出せますように……

【記録】ファイルを複製し、日付を変更する(その3)

ファイルの日付を更新してコピーするのを改訂した。

 

 

前回やったこと 

1)200309_ほにゃらら.xlsx→200321_ほにゃらら.xlsx とかなるようにした

2)ファイルの先頭に「yymmdd_」がつくようにした

 

 

masatler.hatenablog.com

 

今回やったこと

1)ファイル名の先頭に「yymmdd_」をつけるのは、

  Alfredのスニペットにやってもらうことにした

2) cpして日付変えるのは、少しコードを変えた

 

1)ファイル名の先頭に「yymmdd_」をつけるのはAlfredで

自動展開で「!td」と入れれば展開されるので、重宝してる

f:id:masatora_bd5:20200504095043p:plain

 

2)日付変えるのは、少しコードを変えた

正しく(?)baselineコマンドを使おうと

 

for f in "$@"
do

# dt1を取得……〜〜/〜〜/yymmdd_xxxx.zzz形式であることが所与の条件
# basenameを取得
    dt1=$(basename $f)
# 日付を取得(_から先を削除)
    dt1="${dt1%_*}"

# dt2をセット(dt1に対して2wk後日付)
    dt2=$(date -v+2w -j -f "%y%m%d" "$dt1" "+%y%m%d")

#cp
	cp $f ${f/"$dt1"/"$dt2"}

done

 

  • シェル変数 foo をパラメータ参照すると $foo 
  • 条件判断したいときは ${foo:-default} とパラメータ展開
  • コマンドの結果を変数に入れたいときはコマンド置換 $(command) を使う

 

  • dateコマンドが失敗したらcpを行わない、というふうに条件分岐したほうがきれいな気がするけれど、いまのところあまり困っていないので、変えずにおく
  • Automatorではなく、Alfredから起動できるようにする手はあると思うが……クイックアクションも便利だし、早いので、いったんこのままでいく

 

環境

MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports)

macOS Catalina 10.15.3

Automator バージョン2.10 (492)