Renaming a file with sequence number


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Renaming a file with sequence number
# 8  
Old 09-11-2015
Thanks wisecracker, I have put that for testing purposes while creating script. I have edited my post now.

Thanks,
R. Singh
# 9  
Old 09-11-2015
Hi Ravinder,
In addition to what wisecracker asked, I'd also be interested to know what the command %05d\n from line 10:
Code:
VAL1=printf "%05d\n" $VAL

does on your system? Is a command substitution missing?
# 10  
Old 09-11-2015
Hello Don,

It is giving output expected but giving following error.
Code:
 ./check_move_files.ksh: line 10: fg: no job control

Also I tried command for same but it didn't work.
Code:
 VAL1="$(printf "%05d\n" $VAL)"
 ./check_move_files.ksh: line 10: printf: 00009: invalid number

Thanks,
R. Singh
# 11  
Old 09-11-2015
Quote:
Originally Posted by RavinderSingh13
Hello Don,

It is giving output expected but giving following error.
Code:
 ./check_move_files.ksh: line 10: fg: no job control

Also I tried command for same but it didn't work.
Code:
 VAL1="$(printf "%05d\n" $VAL)"
 ./check_move_files.ksh: line 10: printf: 00009: invalid number

Thanks,
R. Singh
Some shells treat a numeric value with leading zeros as an octal number (and, as in this example) complain because 9 is not an octal digit. If you keep VAL as a decimal value with no leading zeros (indicating the current sequence number) and VAL1 as a decimal value with leading zeros for printing (not for arithmetic), you should be OK.

Consider changing this section of your code:
Code:
VAL=`cat $SEQ_FILE`
VAL1=`printf "%05d\n" $VAL`	

MAKE_CHECK_FILE() {
Input_file=$1
	while read line
	do
		let "VAL = VAL + 1"	
                VAL1=`printf "%05d\n" $VAL`	
                mv $TMP_PATH"/"$line $ACTUAL_PATH"/"$line"_"$VAL1
	done < "$Input_file"

	           }


if [[ -s $PREVIOUS_LIST ]]
then
	awk 'FNR==NR{A[$0];next} !($0 in A){print $0}' $PREVIOUS_LIST $LIST_FILES > $FILES_NEEDS_TO_BE_CREATED
        MAKE_CHECK_FILE $FILES_NEEDS_TO_BE_CREATED
else
        MAKE_CHECK_FILE $PREVIOUS_LIST
fi	
        

printf "%05d" $VAL1 > $SEQ_FILE
mv $LIST_FILES $PREVIOUS_LIST

to something more like:
Code:
if [[ -s "$SEQ_FILE" ]]
then	read VAL < "$SEQ_FILE"
else	VAL=0
fi

MAKE_CHECK_FILE() {
	Input_file="$1"
	while read line
	do	VAL=$((VAL + 1))
		VAL1=$(printf "%05d\n" $VAL)	
		mv "$TMP_PATH/$line" "$ACTUAL_PATH/${line}_$VAL1"
	done < "$Input_file"
}

if [[ -s "$PREVIOUS_LIST" ]]
then	awk 'FNR==NR{A[$0];next} !($0 in A){print $0}' "$PREVIOUS_LIST" "$LIST_FILES" > "$FILES_NEEDS_TO_BE_CREATED"
	MAKE_CHECK_FILE "$FILES_NEEDS_TO_BE_CREATED"
else
        MAKE_CHECK_FILE "$PREVIOUS_LIST"
fi	

echo $VAL > "$SEQ_FILE"
mv "$LIST_FILES" "$PREVIOUS_LIST"

Note that I also added (and moved) some of your quotes around for added safety in case a future version of your script sets some of the pathname variables to strings that could contain whitespace or shell filename pattern matching characters.

Last edited by Don Cragun; 09-12-2015 at 05:25 AM.. Reason: Fix typo: s/could whitespace/could contain whitespace/
This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

To check the missing file based on sequence number.

Hi All, I have a requirement that i need to list only the missing sequences with a unix script. For Example: Input: FILE_001.txt FILE_002.txt FILE_005.txt FILE_006.txt FILE_008.txt FILE_009.txt FILE_010.txt FILE_014.txt Output: FILE_003.txt FILE_004.txt FILE_007.txt FILE_011.txt... (5 Replies)
Discussion started by: Arun1992
5 Replies

2. Shell Programming and Scripting

Appending sequence number at the end of file name

hi team, i need a script for renaming a file with sequence number. script get a file from one directory'/home/billing/Cmm/sms/sms_tmp' append sequence no at the end of file name and move a file to other directory/home/billing/Cmm/sms/. actual file is cdr201508271527 file after renaming ... (3 Replies)
Discussion started by: mfaizan40
3 Replies

3. Shell Programming and Scripting

Need Help in adding sequence number to a file

Hi All , I have a file which contains data(comma separated) in below format : 500,Sourav ,kolkata ,8745775020,700091 505,ram,delhi ,9875645874,600032 510 ,madhu ,mumbai ,5698756430 ,500042 515 ,ramesh ,blore ,8769045601 ,400092 I want to add unique sequence number at the start of each... (7 Replies)
Discussion started by: STCET22
7 Replies

4. Shell Programming and Scripting

Renaming the file name for n number of files

Hi , I am kind of new to shell scripting and found a situation to handle ... I have few files which will be ftpd in to our sustem , the file names needs to be renamed based on condition. ------------ Eg file names :- AE_JUNFOR_2013_MTD_2013-04-09-08-30-09.TXT... (6 Replies)
Discussion started by: chillblue
6 Replies

5. Shell Programming and Scripting

find common entries and match the number with long sequence and cut that sequence in output

Hi all, I have a file like this ID 3BP5L_HUMAN Reviewed; 393 AA. AC Q7L8J4; Q96FI5; Q9BQH8; Q9C0E3; DT 05-FEB-2008, integrated into UniProtKB/Swiss-Prot. DT 05-JUL-2004, sequence version 1. DT 05-SEP-2012, entry version 71. FT COILED 59 140 ... (1 Reply)
Discussion started by: manigrover
1 Replies

6. Shell Programming and Scripting

How to insert a sequence number column inside a pipe delimited csv file using shell scripting?

Hi All, I need a shell script which could insert a sequence number column inside a dat file(pipe delimited). I have the dat file similar to the one as shown below.. |A|B|C||D|E |F|G|H||I|J |K|L|M||N|O |P|Q|R||S|T As shown above, the column 4 is currently blank and i need to insert sequence... (5 Replies)
Discussion started by: nithins007
5 Replies

7. UNIX for Dummies Questions & Answers

Adding Sequence Number to file

Hi All, I need to create a script which checks for a particular file for eg.kumar1.txt. If kumar1.txt is already exist the script should increment the file name as kumar2.txt and so on. Please Advise. Thanks & Regards, Kumar66 (2 Replies)
Discussion started by: kumar66
2 Replies

8. Shell Programming and Scripting

How to split a file with adding sequence number and extension.

I have a file name -HRCFTSIN05PLA1602100430444444 my requirement is to split the file in 10000 count each file and to add sequence number.rch at the end of each file. output should be in this format HRCFTSIN05PLA160210043044444401.rch HRCFTSIN05PLA160210043044444402.rch... (4 Replies)
Discussion started by: abhigrkist
4 Replies

9. Shell Programming and Scripting

Renaming a file use another file as a sequence calling a shl

have this shl that will FTP a file from the a directory in windows to UNIX, It get the name of the file stored in this variable $UpLoadFileName then put in the local directory LocalDir="${MPATH}/xxxxx/dat_files" that part seems to be working, but then I need to take that file and rename, I am using... (3 Replies)
Discussion started by: rechever
3 Replies

10. Shell Programming and Scripting

Adding a sequence number within a file

Can someone please help. I need to add a sequence number to the start of each line of a file. It needs to be 6 characters long. ie 000001 next line starts 000002 etc. (4 Replies)
Discussion started by: Dolph
4 Replies
Login or Register to Ask a Question