home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.os.linux      Getting to be as bloated as Windows!      107,822 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 106,017 of 107,822   
   Paul to Java Jive   
   Re: Specifying an action to copy a file    
   30 Mar 24 12:06:07   
   
   XPost: uk.comp.os.linux   
   From: nospam@needed.invalid   
      
   On 3/29/2024 6:54 PM, Java Jive wrote:   
   > As some here may recall, I'm in the midst of several years' work scanning   
   family documents, post-processing them, and then releasing them either to the   
   general public for generations sufficiently removed from living people, or   
   else just back to the    
   source branch of the family. Currently there are nearly 15,000 original   
   documents with equal numbers of post-processed versions arranged as below, but   
   around 7,000 of them completed in previous stages already have final   
   documents, so there are around 8,   
   000 newly added documents left to do.  What I need to do is use a program,   
   feh seems a likely choice, to work through those documents that don't yet have   
   a final version, choose one from five possible versions described below, copy   
   it to its    
   corresponding final directory, and move on to the next.   
   >   
   > The documents are arranged as follows:   
   >   
   > Family History   
   >     /_all/1o/subs    Original scans   
   >     /_all/2n/subs    Normalised versions of the originals   
   >     /_all/3t/subs    Textcleaned versions ditto   
   >     /_all/4nt/subs    Normalised then textcleaned versions ditto   
   >     /_all/5tn/subs    Textcleaned then normalised versions ditto   
   >     /subs        Final docs chosen from the best of the above   
   >   
   > Example for one particular subdirectory:   
   >   
   > Family History/_all/1o/Alston   
   > Family History/_all/2n/Alston   
   > Family History/_all/3t/Alston   
   > Family History/_all/4nt/Alston   
   > Family History/_all/5tn/Alston   
   > Family History/Alston   
   >   
   > I've tried the following command line for feh (sorry can't help any line   
   wrap):   
   >   
   > user@computer:~# feh -Fdr -A 'echo cp -a \"%F\" \"$(echo %F | sed -E "{   
   s~/_all/[1-5][ont]{1,2}~~ ; s~ +\([ont]{1,2}\)~~ }" )\"' 'Family   
   History/_all/1o'   
   >   
   > ... which results in ...   
   >   
   > cp -a "Family History/_all/1o/Alston/Alston Descent - 2nd Earl Of Montrose,   
   William - 1 (o).png" "Family History/Alston/Alston Descent - 2nd Earl Of   
   Montrose, William - 1.png"   
   >   
   > ... which looks as though it should do the job, however removing the echo ...   
   >   
   > user@computer:~# feh -Fdr -A 'cp -a \"%F\" \"$(echo %F | sed -E "{   
   s~/_all/[1-5][ont]{1,2}~~ ; s~ +\([ont]{1,2}\)~~ }" )\"' 'Family   
   History/_all/1o'   
   >   
   > ... results in ...   
   >   
   > cp: target '1.png"' is not a directory   
   >   
   > Can anyone suggest a magical incantation which will yield the desired result?   
   >   
   > Another problem is that I'm going to have order the files so that each of   
   the 5 possible versions are displayed successively so that I can use the arrow   
   keys to go back and forth between them to choose the best.  I think I might   
   be able to use a file    
   list to do this, but as yet I haven't given much thought as to how to create   
   it, it would have to be of the form:   
   >   
   > Family History/_all/1o/Alston/Document 1 (o).png   
   > Family History/_all/2n/Alston/Document 1 (n).png   
   > Family History/_all/3t/Alston/Document 1 (t).png   
   > Family History/_all/4nt/Alston/Document 1 (nt).png   
   > Family History/_all/5tn/Alston/Document 1 (tn).png   
   > Family History/_all/1o/Alston/Document 2 (o).png   
   > Family History/_all/2n/Alston/Document 2 (n).png   
   > Family History/_all/3t/Alston/Document 2 (t).png   
   > Family History/_all/4nt/Alston/Document 2 (nt).png   
   > Family History/_all/5tn/Alston/Document 2 (tn).png   
   > etc.   
   >   
   > I could also use Windows if there's a better solution available there, but   
   that seems unlikely to me.   
   >   
   > Any help gratefully received.   
   >   
      
   If cp had a --dry-run, you could obtain what it sees that way.   
   When it doesn't have such an option, you can debug another way.   
      
   Make yourself a "dumper" to dump the parameters seen on the command line.   
   You can put "dumper" in place of "cp" and get the parameters that way.   
      
   gcc -o dumper dumper.c   
      
   #include   
   int main(int argc, char *argv[])   
   {   
       int i;   
       printf("Number of arguments = %d\n", argc-1);   
       for(i=0; i

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca