1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ファイルにバージョン番号を付ける

Last updated at Posted at 2018-11-26

概要

作業中のファイルをメール等で共有して確認する時に,ファイル名_v07.docxのように,バージョン番号が付いていると便利です.
しかし,イチイチコピペしてバージョン番号を書き換えるのは面倒です.

具体的にどのような動作をするか

バージョン番号が付いているファイルがディレクトリ内に無い時

バージョン番号が付いていているファイルが同一ディレクトリ内に無い時には,ファイル名_v01.docx というファイルがディレクトリ内に作成されます.

バージョン番号が付いているファイルがディレクトリ内にあるとき

バージョン番号が付いているファイルが同一ディレクトリ内にあるときには,バージョン番号を1つ増やしたファイルが作成されます.

例) ファイル名_v03.txtがディレクトリ内にあるときに,実行するとファイル名_v04.txtが作成されます.

実際のコード

  • 使用方法
tcsh version.sh ファイル名

または,
/bin/とかに置いて,パスをはりましょう.

version.sh
#!/bin/tcsh
if ($#argv != 1) then
    echo "Usage: Invalid Argument"
    exit 1
endif

set filefullname = $1
set filename = $filefullname:r
set extension = $filefullname:e
# Retrieve the current version number
set vernum = `ls *.{$extension} | grep $filename | sort -t _ -k 3 -n | tail -n1 | sed -e "s/^.*_v\([0-9]*\).*/\1/"`
# Parameters for determining whether a file with a version number exists
set nullvernum = `ls *.{$extension} | grep $filename | sort -t _ -k 3 -n | tail -n1`

# Increment or set version number
if ($nullvernum == $vernum) then
    @ newvernum = 1
else
    @ newvernum = ${vernum} + 1
endif

set newvernumchar = `printf "%02d" $newvernum`
set newfilename = $filename"_v"$newvernumchar.$extension
cp $filefullname $newfilename
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?