質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

1回答

2666閲覧

findで該当ファイルを探して、コピーまたは移動してファイル名に実行日を付け加えたい

beginner_Linux

総合スコア21

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

0クリップ

投稿2017/06/23 13:35

編集2022/01/12 10:55

###前提・実現したいこと
findで該当ファイルを探して、コピーまたは移動してファイル名に実行日を付け加えたいのですが拡張子の後ろに実行日が付け加えられてしまいます。

#!/bin/sh file="B.txt" cat ${file} | while read line do cnt=$((cnt+1)) #1行にあるカンマの数 |-o マッチした部分| wc -l 文字数カウント kazu=`echo ${line} | grep -o ',' | wc -l` #カンマ区切りで文字を読み込み oridir=`echo ${line} | cut -d ',' -f1` arridir=`echo ${line} | cut -d ',' -f2` target=`echo ${line} | cut -d ',' -f3` syori=`echo ${line} | cut -d ',' -f4` save=`echo ${line} | cut -d ',' -f5` #ファイル名を代入 basename="${target%.*}" #拡張子を代入 ext="${target##*.}" #該当ファイルを検索して移動先にコピーを行い、ファイル名に実行日を加える find ${oridir} -name "${target}" -type f | awk -F/ '{print $NF}' | xargs -i cp ${oridir}/${target} ${arridir} | rename (ここにファイル名に実行日を付け加える処理をしたいです) done

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

date +%Y%m%d
とすると年月日がYYYYMMddの形式で出力できますので...

#!/bin/sh ... d=`date +%Y%m%d` fsrc=元のファイル名 fdst=`echo $fsrc | sed 's/\.\([^\.]\)/'$d'.\1/'` ...

上記のようにするとfsrcにあるファイル名の拡張子の直前に当日の日付が挿入されたファイル名をfdstへ得ることができると思います。

投稿2017/06/24 15:39

KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beginner_Linux

2017/06/25 02:36

回答ありがとうございます 申し訳ありませんが、renameを使ってやり方を教えてくれないでしょうか?
KSwordOfHaste

2017/06/25 02:58

renameってそんなコマンドあったかなと思ってman renameとしたら出てきたので自分もビックリです。 普段その目的にはmvを使うので自分もmanをみて調べてみないとすぐにはお答えできません。なにやら不思議なことをしてくれるコマンドのようですね・・・
KSwordOfHaste

2017/06/25 03:03

このコマンドを使うなら、abc.txtがあり、abc.def.txtのようなファイルが存在しないと仮定するなら、 rename abc abc$d abc.* でよさそうです。当該ディレクトリーへどんなファイル名のものがあるかちゃんとわかって使わないと少々危険だと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問