日報ファイルをコピーするshellscriptを書いた
4894 ワード
日報をMarkdownで書いています。
手作業でコピー・編集していた作業があったのですが、shellscriptを書いて自動化しました。
スクリプト
機能はこんな感じです。
- 日報ファイルをコピーして今日の日付でファイルを生成します
- すでに今日のファイルがある場合はコピーしません
- コピーしたファイルのパスを出力します
- 一行目を今日の日付で上書き
- Markdownの完了タスクを消します
(shellscriptあまり書き慣れていないのでツッコミ歓迎しています。)
copy-daily-report.sh
#!/bin/bash -eu
# 前日に書いた日報ファイルをコピー
# * 日報ファイルをコピーして今日の日付でファイルを生成します
# * すでに今日のファイルがある場合はコピーしません
# * コピーしたファイルのパスを出力します
memoDir="$HOME/Documents/memo/_posts"
dailyReportSuffix="-daily-report.md"
weekTexts=(日 月 火 水 木 金 土)
week=${weekTexts[`date +%w`]}
todayText=`date "+# %Y/%m/%d ($week)"`
cd $memoDir
newestDailyReport=`ls -t *$dailyReportSuffix | head -1`
todayDailyReport=`date +%Y-%m-%d$dailyReportSuffix`
function echoDailyReportPath () {
echo $memoDir/$todayDailyReport
}
if [ $newestDailyReport = $todayDailyReport ]; then
echoDailyReportPath
exit 0
fi
cp $newestDailyReport $todayDailyReport
# * 一行目を今日の日付で上書き
sed -i '' -e "1s|^.*$|$todayText|" $todayDailyReport
# * Markdownの完了タスクを消す
sed -i '' -e "/^ *[-+*] \[[xX]\].*/d" $todayDailyReport
echoDailyReportPath
exit 0
これをpathが通っている場所に置きます。
例
フォーマットはこんな感じで書いています。
2019-02-02-daily-report.md
# 2019/02/02 (土)
## TODO
* [ ] hoge
* [X] fuga
* [x] piyo
* [x] 123
* [ ] aaa
* [ ] bbb
## memo
* あああああ
実行するとこのようなファイルを生成します。
2019-02-03-daily-report.md
# 2019/02/03 (日)
## TODO
* [ ] hoge
* [ ] aaa
* [ ] bbb
## memo
* あああああ
応用
コピーしたファイルのパスを出力するので、そのままエディターで開くことができます。
# fishにてVSCodeで開く例
code (copy-daily-report.sh)
Author And Source
この問題について(日報ファイルをコピーするshellscriptを書いた), 我々は、より多くの情報をここで見つけました https://qiita.com/hush_in/items/fdc92db6b8538a7809fe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .