Stories/2020-07-10
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* msys2でファイルの作成日をExifを元に修正する [#q49fafc1]
方針:
- exiftool でExifを取得、加工する
- powershell でファイル作成日を修正
-- Set-ItemProperty.CreationTime
** exiftool を入れる [#cc1a42ec]
perl5 の Image::ExifTool を入れます
cpanm を使うならこうです
#prism(bash){{{
$ curl -L -O http://xrl.us/cpanm | perl cpanm App::cpanmi...
$ cpanm Image::ExifTool
}}}
Exif見てみます
#prism(bash){{{
$ exiftool MORNING-GATE_20200529.m4a | grep -e ^Title -e ...
File Modification Date/Time : 2020:06:05 05:42:55+09:00
File Access Date/Time : 2020:07:10 06:18:08+09:00
File Inode Change Date/Time : 2020:06:05 05:42:55+09:00
Create Date : 0000:00:00 00:00:00
Modify Date : 2020:06:04 20:42:53
Track Create Date : 0000:00:00 00:00:00
Track Modify Date : 0000:00:00 00:00:00
Media Create Date : 0000:00:00 00:00:00
Media Modify Date : 0000:00:00 00:00:00
Title : MORNING-GATE_20200529_0...
Content Create Date : 2020:05:29
}}}
普通は Media Create Date あたりを使うのでしょうけど、今回...
#prism(bash){{{
$ ls
MORNING-GATE_20200529.m4a サブカルチャーはじめました_2...
# exiftool * | grep ^Title
Title : MORNING-GATE_20200529_0...
Title : サブカルチャーはじめま...
Title : 福島和可菜のLET'S-GO!GO...
}}}
** 日時の文字列を変換 [#fb9de6a9]
MORNING-GATE_20200529_0650 -> 2020/06/04 06:50
#prism(bash){{{
$ exiftool MORNING-GATE_20200529.m4a | grep ^Title | grep...
2020/05/29 06:50
}}}
改行入れます
#prism(bash){{{
$ exiftool MORNING-GATE_20200529.m4a | \
# タイトル行を抜き出す
grep ^Title | \
# 20200529 と 0650 を抜き出す(改行される)
grep -oEe '[0-9]{8}' -e '[0-9]{4}' | \
# 20200529 と 0650 を1行に並べる
xargs | \
# 20200529 -> 2020/05/29
sed -r 's;^(....)(..)(..);\1/\2/\3;' | \
# 0650 -> 06:50
sed -r 's/(..)(..)$/\1:\2/'
2020/05/29 06:50
}}}
** powershell でファイル作成日を変更する [#sb581ddc]
echo を入れて一旦コマンドを表示させてみます
#prism(bash){{{
$ for f in *.m4a; do echo powershell -Command Set-ItemPro...
powershell -Command Set-ItemProperty "MORNING-GATE_202005...
powershell -Command Set-ItemProperty "サブカルチャーはじ...
powershell -Command Set-ItemProperty "福島和可菜のLET'S-G...
}}}
ハマりポイント:
- ファイル名は「"」(ダブルクォーテーション)で括る
- 日時パラメータは「'」(シングルクォーテーション)で括る
これに気づくまでちょっと時間を費やしてしまいました・・・
それでは echo を外して実行してみます
(set -x を入れて、何がどうエスケープされているかも見てみ...
#prism(bash){{{
$ set -x; for f in *.m4a; do powershell -Command Set-Item...
8}' -e '[0-9]{4}' | xargs | sed -r 's;^(....)(..)(..);\1/...
+ for f in *.m4a
++ exiftool MORNING-GATE_20200529.m4a
++ grep '^Title'
++ grep -oEe '[0-9]{8}' -e '[0-9]{4}'
++ xargs
++ sed -r 's;^(....)(..)(..);\1/\2/\3;'
++ sed -r 's/(..)(..)$/\1:\2/'
+ powershell -Command Set-ItemProperty '"MORNING-GATE_202...
+ for f in *.m4a
++ exiftool サブカルチャーはじめました_20200531.m4a
++ grep '^Title'
++ grep -oEe '[0-9]{8}' -e '[0-9]{4}'
++ xargs
++ sed -r 's;^(....)(..)(..);\1/\2/\3;'
++ sed -r 's/(..)(..)$/\1:\2/'
+ powershell -Command Set-ItemProperty '"サブカルチャーは...
+ for f in *.m4a
++ exiftool '福島和可菜のLET'\''S-GO!GO-OUT-SUNDAY!!_2020...
++ grep '^Title'
++ grep -oEe '[0-9]{8}' -e '[0-9]{4}'
++ xargs
++ sed -r 's;^(....)(..)(..);\1/\2/\3;'
++ sed -r 's/(..)(..)$/\1:\2/'
+ powershell -Command Set-ItemProperty '"福島和可菜のLET'...
+ set +x
}}}
お疲れ様でした
終了行:
* msys2でファイルの作成日をExifを元に修正する [#q49fafc1]
方針:
- exiftool でExifを取得、加工する
- powershell でファイル作成日を修正
-- Set-ItemProperty.CreationTime
** exiftool を入れる [#cc1a42ec]
perl5 の Image::ExifTool を入れます
cpanm を使うならこうです
#prism(bash){{{
$ curl -L -O http://xrl.us/cpanm | perl cpanm App::cpanmi...
$ cpanm Image::ExifTool
}}}
Exif見てみます
#prism(bash){{{
$ exiftool MORNING-GATE_20200529.m4a | grep -e ^Title -e ...
File Modification Date/Time : 2020:06:05 05:42:55+09:00
File Access Date/Time : 2020:07:10 06:18:08+09:00
File Inode Change Date/Time : 2020:06:05 05:42:55+09:00
Create Date : 0000:00:00 00:00:00
Modify Date : 2020:06:04 20:42:53
Track Create Date : 0000:00:00 00:00:00
Track Modify Date : 0000:00:00 00:00:00
Media Create Date : 0000:00:00 00:00:00
Media Modify Date : 0000:00:00 00:00:00
Title : MORNING-GATE_20200529_0...
Content Create Date : 2020:05:29
}}}
普通は Media Create Date あたりを使うのでしょうけど、今回...
#prism(bash){{{
$ ls
MORNING-GATE_20200529.m4a サブカルチャーはじめました_2...
# exiftool * | grep ^Title
Title : MORNING-GATE_20200529_0...
Title : サブカルチャーはじめま...
Title : 福島和可菜のLET'S-GO!GO...
}}}
** 日時の文字列を変換 [#fb9de6a9]
MORNING-GATE_20200529_0650 -> 2020/06/04 06:50
#prism(bash){{{
$ exiftool MORNING-GATE_20200529.m4a | grep ^Title | grep...
2020/05/29 06:50
}}}
改行入れます
#prism(bash){{{
$ exiftool MORNING-GATE_20200529.m4a | \
# タイトル行を抜き出す
grep ^Title | \
# 20200529 と 0650 を抜き出す(改行される)
grep -oEe '[0-9]{8}' -e '[0-9]{4}' | \
# 20200529 と 0650 を1行に並べる
xargs | \
# 20200529 -> 2020/05/29
sed -r 's;^(....)(..)(..);\1/\2/\3;' | \
# 0650 -> 06:50
sed -r 's/(..)(..)$/\1:\2/'
2020/05/29 06:50
}}}
** powershell でファイル作成日を変更する [#sb581ddc]
echo を入れて一旦コマンドを表示させてみます
#prism(bash){{{
$ for f in *.m4a; do echo powershell -Command Set-ItemPro...
powershell -Command Set-ItemProperty "MORNING-GATE_202005...
powershell -Command Set-ItemProperty "サブカルチャーはじ...
powershell -Command Set-ItemProperty "福島和可菜のLET'S-G...
}}}
ハマりポイント:
- ファイル名は「"」(ダブルクォーテーション)で括る
- 日時パラメータは「'」(シングルクォーテーション)で括る
これに気づくまでちょっと時間を費やしてしまいました・・・
それでは echo を外して実行してみます
(set -x を入れて、何がどうエスケープされているかも見てみ...
#prism(bash){{{
$ set -x; for f in *.m4a; do powershell -Command Set-Item...
8}' -e '[0-9]{4}' | xargs | sed -r 's;^(....)(..)(..);\1/...
+ for f in *.m4a
++ exiftool MORNING-GATE_20200529.m4a
++ grep '^Title'
++ grep -oEe '[0-9]{8}' -e '[0-9]{4}'
++ xargs
++ sed -r 's;^(....)(..)(..);\1/\2/\3;'
++ sed -r 's/(..)(..)$/\1:\2/'
+ powershell -Command Set-ItemProperty '"MORNING-GATE_202...
+ for f in *.m4a
++ exiftool サブカルチャーはじめました_20200531.m4a
++ grep '^Title'
++ grep -oEe '[0-9]{8}' -e '[0-9]{4}'
++ xargs
++ sed -r 's;^(....)(..)(..);\1/\2/\3;'
++ sed -r 's/(..)(..)$/\1:\2/'
+ powershell -Command Set-ItemProperty '"サブカルチャーは...
+ for f in *.m4a
++ exiftool '福島和可菜のLET'\''S-GO!GO-OUT-SUNDAY!!_2020...
++ grep '^Title'
++ grep -oEe '[0-9]{8}' -e '[0-9]{4}'
++ xargs
++ sed -r 's;^(....)(..)(..);\1/\2/\3;'
++ sed -r 's/(..)(..)$/\1:\2/'
+ powershell -Command Set-ItemProperty '"福島和可菜のLET'...
+ set +x
}}}
お疲れ様でした
ページ名: