If BEFORE is a boxed list of current file names and AFTER is a boxed list
of new names for them, and if you are using j701, then

   BEFORE frename S:0 AFTER

should do the trick.

If you are using j602, you will also need to define frename.  Here's the
current definition:

frename=: 4 : 0
  x=. > fboxname x
  y=. > fboxname y
  if. x -: y do. return. end.
  if. IFUNIX do.
    2!:0 'mv "',y,'" "',x,'"'
  else.
    'kernel32 MoveFileW i *w *w' 15!:0 (uucp y);uucp x
  end.
)


-- 
Raul


On Mon, Nov 28, 2011 at 5:42 AM, Skip Cave <[email protected]> wrote:

> I have an n x 2 boxed array that contains an event ID, and a path to an
> audio .wav file in a folder. The folder also  contains several additional
> audio wave files.
> Here's a small section of that array:
>
>  tstfp
>
> ┌──────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
> │000355│
>
> C:\Nuance\V8.5.0\mrcp\logs\2011\10October\29\00-08-24-vx1prn123-7b42060a_00000d48_4eab43f8_0064_0000\utt02.wav│
>
> ├──────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
> │000356│
>
> C:\Nuance\V8.5.0\mrcp\logs\2011\10October\29\00-08-24-vx1prn123-7b42060a_00000d48_4eab43f8_0064_0000\utt03.wav│
>
> ├──────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
> │000357│
>
> C:\Nuance\V8.5.0\mrcp\logs\2011\10October\29\00-08-24-vx1prn123-7b42060a_00000d48_4eab43f8_0064_0000\utt04.wav│
>
> ├──────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
> │000361│
>
> C:\Nuance\V8.5.0\mrcp\logs\2011\10October\29\00-08-24-vx1prn123-7b42060a_00000d48_4eab43f8_0064_0000\utt08.wav│
>
> └──────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
>
> The first column is a text string representing the event number of the
> event which created two audio files in the directory defined in the second
> column. Looking at the first row of the matrix, the path in the second
> column is designating a file named utt02.wav.
>
> However, there are actually 2 audio files in that folder with the 02
> reference. They are: utt02.wav.gz, & ep_call00000_utt00002.wav.gz. The two
> files are trimmed and untrimmed audio of the same event.
>
> After the original log was created, every audio file was zipped, so all
> audio files now  have an extension of *.wav.gz, though the main filename
> was not changed. The wildcard * will be either ep_call00000_utt000?? or
> utt?? where ** is the state number.
>
> Also after the log was created, the file paths to the audio files got
> shortened slightly. The path now starts at 'log'
>
> For example, in the folder:
> 00-08-24-vx1prn123-7b42060a_00000d48_4eab43f8_0064_0000
> The example log list shows that there are four events, all in the same
> folder. Each event created two audio file sin the folder:
>
> there are several pairs of audio files, one pair for each event, in the
> folder:
> 00-08-24-vx1prn123-7b42060a_00000d48_4eab43f8_0064_0000
>
> Here's a listing of the contents of the folder:
>
>
> utt02.wav.gz                                 NB. Event 000355
> ep_call00000_utt00002.wav.gz
>
> utt03.wav.gz                                 NB. Event 000356
> ep_call00000_utt00003.wav.gz
>
> utt04.wav.gz                                NB. Event 000356
> ep_call00000_utt00004.wav.gz
>
> utt08.wav.gz                                NB. Event 000361
> ep_call00000_utt00008.wav.gz
>
> I want to gather up all of the thousands of audio files that are referenced
> in the log list from their respective folders, and put them all in one
> folder. Unfortunately, since most of the file names are replicated over and
> over, we will need to rename the files with a unique name before moving
> them. The event number is unique, so we can use that number to uniquely
> identify the files.
>
> Event 000355
> utt02.wav.gz  => 000355yep02.wav.gz
> ep_call00000_utt00002.wav.gz => 000355nep02.wav.gz
>
> Event 000356
> utt03.wav.gz  => 000356yep03.wav.gz
> ep_call00000_utt00003.wav.gz => 000356nep03.wav.gz
>
> Event 000357
> utt04.wav.gz  =>000357.wav.gz
> ep_call00000_utt00004.wav.gz => 000357nep04.wav.gz
>
> Event 000361
> utt08.wav.gz  => 000361yep08.wav.gz
> ep_call00000_utt00008.wav.gz => 000361nep08.wav.gz
>
> Once the files are renamed, I can put them all in one folder, and the event
> ID in the filename will keep a referenceto the full event log.
>
> The challenge is to build a function that can do file re-naming and moving
> with minimal explicit looping.
>
> Skip
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to