Sponsored Content
Top Forums Shell Programming and Scripting change the filename by adding up 1 each time, tricky one Post 302173714 by alex_5161 on Friday 7th of March 2008 03:45:09 PM
Old 03-07-2008
I have undestood the used syntax (with help from another person)
Quote:
Originally Posted by cfajohnson
You don't use regular expressions in parameter expansion; you use
filename expansion (a.k.a. wildcard) patterns.
and replay to my question by myself.
It is parameter expansion POSIX shell parameter expansions

And that means:
Code:
suffix=${name#*.}

- # remove shortest part from beginning for matching *. - so for name="abc.def.gh" it removes the "abc." and returtns "def.gh", although "abc.def." is also matching the *.
So, this statement means - everything after first dot.

Code:
main=${name%.$suffix}

- % remove shortest part from end for matching .$suffix - So, it is removing suffix with dot from end, and returns beginning before .

Shorter it could be done with the same result by:
Code:
main=${name##*.}

- but the suffix is used in final construction
The double % and # ( %% and ## ) means to remove longer matching, instead of shorter

Now the
Code:
prefix=${main%%+([0-9])}

means : get part before longer line of consecutive digits on end of the 'main'
: '+' - one or more repetition; [0-9] - any digits

and
Code:
num=${main#$prefix}

- obviose is that just removed in previose statement string of digits

The statement num=10#${num} adds the base of the number. Othervise the '09' would be treated as 8-base number and rase an error (9 - is out of 0-7 digits)
Acctualy, last two statement before final file name construction could be done in that construction:
Code:
newname=${prefix}$((10#$num+1)).${suffix}

The '$((' and '))' define arithmetic calculation, '10#' before variable annonce the base for number.

Last edited by alex_5161; 11-05-2008 at 08:03 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to adding the filename into file contents

Dear Experts, Please help to teach me how to add the filename into the file content so that i can get the output below:- Actually the file name ***************New output that I want*************** =====2005-11-12===== EVENTS-20050912 03:33:37 ALARM: BTSSPAN-277-1 30-18013... (2 Replies)
Discussion started by: missutoomuch
2 Replies

2. Shell Programming and Scripting

Adding filename into file content

Dear Experts, Please help to teach me how to add the filename into the file content. Actually the file name are EVENTS-20050912. ***************New output that I want*************** EVENTS-20050912 03:33:37 ALARM: BTSSPAN-277-1 30-18013 EVENTS-20050912 12:10:28 ALARM: BTSSPAN-297-2... (1 Reply)
Discussion started by: missutoomuch
1 Replies

3. Shell Programming and Scripting

a bit tricky to change it multiple rows in one row and ...

Hi, I have an output file like: 1415971694 376 (12); 3434327831 376 (7); 2989082873 332 (3); 4075357577 332 (3); 1221064374 376 (2); 2372410470 376 (2); 2563564778 332 (2); 443221432 376 (1); ... (2 Replies)
Discussion started by: netbanker
2 Replies

4. Shell Programming and Scripting

gzcat into awk and then change FILENAME and process new FILENAME

I am trying to write a script that prompts users for date and time, then process the gzip file into awk. During the ksh part of the script another file is created and needs to be processed with a different set of pattern matches then I need to combine the two in the end. I'm stuck at the part... (6 Replies)
Discussion started by: timj123
6 Replies

5. UNIX for Dummies Questions & Answers

Adding Date & time stamps to filename

I need to edit the file name with date and time while writing the script. please help. (1 Reply)
Discussion started by: manish.s
1 Replies

6. Shell Programming and Scripting

Help with adding leading zeros to a filename

Hi i need help in adding leading zero to filenames e.g file name in my folder are 1_234sd.txt 23_234sd.txt the output i need is 001_234sd.txt 023_234sd.txt can i do this shell scripting please help (2 Replies)
Discussion started by: rsmpk
2 Replies

7. Shell Programming and Scripting

Adding filename to each line of the file

Hi, I am a relative new bee in scripting. I need to develop a script such that the code would iterate through each file in a source directory and append every line of the file with '|' and the corresponding file filename. eg INPUT file IF927_1.dat - H|abc... (4 Replies)
Discussion started by: scripting_newbe
4 Replies

8. UNIX for Dummies Questions & Answers

Adding Filename as column using sed

Hi , Can any one please tell me, how can we add the file name as column using sed. right now we are using the below awk command for adding the file name as column but when we are calling this script from datastage it is deleting the file data..very weird raised a support ticket with datastage.... (2 Replies)
Discussion started by: mora
2 Replies

9. Shell Programming and Scripting

Adding time to date time in UNIX shell scipting

I needed some help in adding a duration (in seconds) to a start time (in hhmmss format) and a start date (in mmddyy format) in order to get an end date and end time. The concept of a leap year is also to be considered while incrementing the day. The code/ function that I have formed so far is as... (3 Replies)
Discussion started by: codehelp04
3 Replies

10. Shell Programming and Scripting

Adding timestap to filename using perl

Hello, I am trying to create a file in windows and i want the filename to have timestamp as well but something is wrong and i can not understand waht. The code that i use is the following ($cwkday,$cmonth,$cday,$ctime,$cyear) = split(/\s+/, localtime); $current_date =... (5 Replies)
Discussion started by: chriss_58
5 Replies
All times are GMT -4. The time now is 09:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy