"Revision up" instead of version up


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers "Revision up" instead of version up
# 1  
"Revision up" instead of version up

I need to alter this script to work with a revision instead of a version.
RF_102_209_200_v001_r01.nk is the new format and I'll be revisioning up the r01 portion and not the v001.

Code:
 #!/bin/sh  

for file in "$@" 
do         
ext=${file##*.}         
base=${file%.*}         
num=${base##*v}         
zeroes=${num%%[!0]*}         
num=${num#$zeroes}  
num=$((num+1))         
base=${base%v*}         
new=$(printf '%sv%04d.%s' "$base" "$num" "$ext")         
cp -nv "$file" "$new"
 done

# 2  
What would be your approach, in light of the proposals you received on similar requests (Incremental numbering?, Alter existing script to work with longer file name, Versioning up a file with initials? )?

Last edited by RudiC; 3 Weeks Ago at 08:08 PM..
# 3  
Yes well, unfortunately, I don't get to keep up with this stuff as often as I'd like, since this isn't really part of my job. I took a stab at it but failed miserably. So rather than have my boss come over and ask what the f' I'm doing writing code instead of actually working, I asked here.
# 4  
Hey, I got lucky and worked it out myself. I thought it would be harder.


Code:
#!/bin/sh

for file in "$@"
do
        ext=${file##*.}
        base=${file%.*}
        num=${base##*[r_]}
        base=${base%$num}
        num=$((10#$num+1))
        new=$(printf '%s%02d.%s' "$base" "$num" "$ext")
        cp -nv "$file" "$new"
done

# 5  
Very good indeed. If you can run the script with bash, try also
Code:
IFS="_."
for file in *.nk
  do    read A B C D V R X <<< $file
        printf "%s_%s_%s_%s_%s_r%02d.%s\n" $A $B $C $D $V $((10#${R#r} + 1)) $X
  done
RF_102_209_200_v001_r02.nk

or
Code:
IFS="_."
for file in *.nk
  do    ARR=( $file )
        printf "%s_%s_%s_%s_%s_r%02d.%s\n" ${ARR[0]} ${ARR[1]} ${ARR[2]} ${ARR[3]} ${ARR[4]} $((10#${ARR[5]#r} + 1)) ${ARR[6]}
  done
 RF_102_209_200_v001_r02.nk

Don't forget to reset IFS to its original value.


If all your file names are set to the positional parameters, try
Code:
IFS=$'\n'
while IFS="_." read A B C D V R X
  do    printf "cp %s_%s_%s_%s_%s_%s.%s %s_%s_%s_%s_%s_r%02d.%s\n" $A $B $C $D $V $R $X $A $B $C $D $V $((10#${R#r} + 1)) $X
  done <<< "$*"
cp RF_102_209_200_v001_r01.nk RF_102_209_200_v001_r02.nk
cp RF_102_209_200_v001_r04.nk RF_102_209_200_v001_r05.nk




and pipe the output into your shell...

Last edited by RudiC; 3 Weeks Ago at 06:49 PM..
# 6  
Wow. I like the look of those.

They seem like they'd be much easier to edit being that we're just calling each piece of the file a different variable.

I don't completely understand it yet, but I'll do more research and try to figure out what exactly is happening.


Thank you.
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #623
Difficulty: Medium
The Python for loop is radically different from the C/C++ for loop.
True or False?

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. UNIX for Dummies Questions & Answers

What is the significance of sh -s in ssh -qtt ${user}@${host} "sh -s "${version}"" < test.sh?

Please can you help me understand the significance of providing arguments under sh -s in > ssh -qtt ${user}@${host} "sh -s "${version}"" < test.sh (4 Replies)
Discussion started by: Sree10
4 Replies

5. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. AIX

"pconsole" and "esaadmin" on AIX version 6

Anyone know what is the function of user "pconsole" and "esaadmin" on AIX version 6? (1 Reply)
Discussion started by: ebab3
1 Replies

8. Solaris

Who has "Solaris 10 Advanced System Administration(SA-202-S10)" latest revision doc?

Dear All, I am going to examine SA202 but I got SA-202-S10 revision A.1 so it might be out of date. Who has "Solaris 10 Advanced System Administration(SA-202-S10)" latest revision document? Could you share it ? Thank you in advance (2 Replies)
Discussion started by: unitipon
2 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

Featured Tech Videos