Archive for the ‘script’ Tag

[bash] format date

It happens often a script I have the needs to append a simple timestamp in the format of YYYYMMDDHHMMSS to a generated file.

It’s very easy to get it to work in pure bash, without perl script and similia. Just use the native date command with his format option. Easy as drinking a glass of water, the command is (for the format above)

$ date +”%Y%m%d%H%M%S”

for the full detail of the format arguments, refer to the man page.

A simple usage in script is

#!/bin/bash
set -e

NOW=`date +”%Y%m%d%H%M%S”`
FILE=my-cool-file-${NOW}.txt

echo $FILE

watermark for the edivad-suite

Released a new version of the edivad-suite which include a script for making a watermark on the image. As usual it works on opened image, single file or directory.

From now you can also find, browsing the SVN, a bash script I use for sequentially renaming (actually a cp) all files in a directory, starting from a provided number, and a desired file extension.

Scheme syntax in eclipse

A simple and quick post. In order to have scheme syntax hilight in eclipse you can easily install the schemeway plugin.

[Script-Fu] case sensitive file-glob

Let’s talk again about script-fu. file-glob is a beautiful function that retrieve all the files within a specified directory with the specified pattern. But if you have to deal with case sensitive file system, soon or late you’ll bump in the problem that *.jpg is different from *.JPG.

In order to solve this it’s enough to think about regular expression. Yes, it seems that file-glob make use of regular expression for file pattern matching. So if you, for example, have a patter like /home/edivad/img/*.jpg and want a case insensitive matching you can use a pattern like /home/edivad/img/*.[jJ][pP][gG].

[Script-Fu] portfolio

I did it again. For the photo training I’m attempting to, I need to show at the final year test a portfolio for the reportage subject.

I have to show 30 photos paged in a portfolio. So in order to speed up the pagination work, I did a gimp script.

This will process the opened image and generate a new file with the paginated photo and a caption.

Here is the code; pdf as usual damn wordpress.

Again, I’m not proof in script-fu so if you encounter something wrong or that can be done better, use the comments :)

[Bash] Rename files sequentially and padding 2

I’ve updated my last script in order to be able to manage different file extensions provided as parameters.

[Bash] Rename files sequentially and padding

Maybe I’ve just reinvented the hot water. But I needed it and it took me less time to write it on my own than searching for the solution.

The task was to take all files in a directory and copy them into an output directory renaming them sequentially starting from a provided number. So files will be something like 0000.jpg, 0001.jpg, …, 0035.jpg, etc.

Less words as usual :)

#!/bin/bash
# copy all files in the directory to an output one renaming them
# sequentially.
#
#          GNU LESSER GENERAL PUBLIC LICENSE
#               Version 2.1, February 1999
#
# Copyright (C) 1991, 1999 Free Software Foundation, Inc.
# 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
# Everyone is permitted to copy and distribute verbatim copies
# of this license document, but changing it is not allowed.
#
# http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
#

OUT_DIR=out
PAD_LENGTH=5

if [ -z "$1" ] || [ -z "$2" ] ; then
   echo "./move.sh <number-to-start-from> <extension>"
   echo " "
   echo "./move.sh 12 JPG"
else
   # testing output directory exist. if not create it.
   if [ ! -d ${OUT_DIR} ] ; then
      mkdir ${OUT_DIR}
   fi

   COUNTER=$1
   EXT=$2

   for file in *.${EXT} ; do
      OUTFILE=$(printf "%0${PAD_LENGTH}i\n" "${COUNTER}")
      cp -v $file ${OUT_DIR}/${OUTFILE}.${EXT};
      let COUNTER++;
   done
fi

Here is the source code (pdf) for easy read/copy/paste.