ファイル名形式を「2020-12-09」から「2020.12.09」に変更します。

ファイル名形式を「2020-12-09」から「2020.12.09」に変更します。

Bashを使ってファイルの先頭に日付を追加する方法を見つけました。問題は、私が2020.12.09 - filename歴史的にすべてのファイルにその形式を使用して好むということです。私のコマンドは日付の標準形式を追加します2020-12-09filename。ダッシュをピリオドに変更し、日付とファイル名の間にスペースを含むダッシュを追加したいと思います。

助けてくれてありがとう。ありがとうございます!

答え1

初期プログラムを編集できる場合は、dateマニュアルページを確認してください。

date '+%Y.%m.%d'      # -->  2020.12.09

既存のファイルの名前を変更するには:

prename 's/(\d{4})-(\d{2})-(\d{2})/$1.$2.$3 - /' 20*

一部のLinuxディストリビューションでprename呼び出されますrename

答え2

これは私にとって効果的です。

mv 12-34-5.txt 12\.34\.5.txt

構文は次のとおりです。mv <old name> <new name>

答え3

私はあなたが次の日付を生成していると思います。

$ date -Idate
2020-12-09

以下を使用して配管に置き換えることがsedできます。-.

$ date -Idate | sed 's/-/./g'
2020.12.09

その後、ファイル名を変更できます。

mv "$file" $(date -Idate | sed 's/-/./g')\ -\ "$file"

これは少し冗長なので、次の関数を作成できます~/.bashrc

function add-date {
  mv "$1" $(date -Idate | sed 's/-/./g')\ -\ "$1"
}

それでは、どのように機能するかを見てみましょう。

$ touch file1
$ ls
file1
$ add-date file1
$ ls
'2020.12.09 - file1'

関連情報