ディレクトリ構造
cham-hikioku-high - 2020年02月23日01時06分.jpg - 2020年02月23日01時06分.jpg ~ - 2020年06月08日01時13分.jpg cham-hikioku-low - 2020年02月28日01時06分.jpg - 2020年02月28日12時06分.jpg ~ - 2020年06月08日01時13分.jpg
動かない問題のコード
コードの目的:違う時間帯で撮影された画像を日付ごと一枚にするスクリプト
$ cat ~/tomtools/shdaymakiai.sh #!/bin/bash for i in *;do cd ${i} dirname=$(basename `pwd`) mkdir out-${dirname} ls -1 *.jpg |awk '{print substr($0, 12) " " substr($0, 1, 11)}' |uniq -f 1|awk '{print $2 $1}' |xargs -I{} cp {} out-${dirname} cd .. done
上記のコードを自分のmacで実行するとうまくいくのですが、別のmac(sierra 10.12.6)で実行すると
uniq: stdin: Illegal byte sequence
とエラー出力されます。
試したこと
記事を参考にenv LANG=cを付けました。
$ cat ~/tomtools/shdaymakiai.sh #!/bin/bash for i in *;do cd ${i} dirname=$(basename `pwd`) mkdir out-${dirname} env LANG=c ls -1 *.jpg |env LANG=c awk '{print substr($0, 12) " " substr($0, 1, 11)}' |env LANG=c uniq -f 1|env LANG=c awk '{print $2 $1}' |env LANG=c xargs -I{} cp {} out-${dirname} cd .. done
上記のようにしたところエラーは出なくなりました。
しかし、out-cham-hikioku-high/の画像ファイルは歯抜けになっていました。
うまく行く場合は、2月23日から6月8日まで連日で画像が取得されます。
$ ls out-cham-hikioku-high/ 2020年02月23日01時06分.jpg 2020年03月01日01時07分.jpg 2020年04月01日01時09分.jpg 2020年05月01日01時10分.jpg 2020年06月01日01時12分.jpg ls out-cham-hikioku-low/ 2020年02月27日11時54分.jpg 2020年03月01日01時01分.jpg 2020年04月01日01時03分.jpg 2020年05月01日01時04分.jpg 2020年06月01日01時05分.jpg
検索ワードすらわかない状態です。
ご教授頂けたら嬉しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/09 10:11