Problem renaming files on Solaris 10 server


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem renaming files on Solaris 10 server
# 1  
Old 05-03-2016
Problem renaming files on Solaris 10 server

Good day all.

I'm trying to rename some files in my home directory with some bizarre results. Basically I need to change the IP address in the filename to the hostname which I ggrep from within the file:

Code:
 
-rw-r--r--   1 bh694n   nrc         5095 May  2 20:03 alarms_999.189.161.146.log
-rw-r--r--   1 bh694n   nrc         4450 May  2 20:03 alarms_999.189.161.5.log
-rw-r--r--   1 bh694n   nrc         4398 May  2 20:03 alarms_999.189.175.143.log
-rw-r--r--   1 bh694n   nrc         4450 May  2 20:03 alarms_999.189.175.20.log
-rw-r--r--   1 bh694n   nrc         4397 May  2 20:03 alarms_999.190.152.231.log
-rw-r--r--   1 bh694n   nrc         4400 May  2 20:03 alarms_999.190.152.76.log
-rw-r--r--   1 bh694n   nrc         4397 May  2 20:03 alarms_999.190.161.232.log
-rw-r--r--   1 bh694n   nrc         5227 May  2 20:03 alarms_999.191.152.220.log
-rw-r--r--   1 bh694n   nrc         4429 May  2 20:03 alarms_999.191.152.77.log
-rw-r--r--   1 bh694n   nrc         4398 May  2 20:03 alarms_999.191.184.231.log
-rw-r--r--   1 bh694n   nrc         4419 May  2 20:03 alarms_999.191.184.52.log
-rw-r--r--   1 bh694n   nrc         5512 May  2 20:03 alarms_999.192.104.46.log
-rw-r--r--   1 bh694n   nrc         4398 May  2 20:03 alarms_999.192.106.46.log
-rw-r--r--   1 bh694n   nrc         5508 May  2 20:03 alarms_999.193.171.214.log
-rw-r--r--   1 bh694n   nrc         5453 May  2 20:03 alarms_999.193.171.53.log
-rw-r--r--   1 bh694n   nrc         4398 May  2 20:03 alarms_999.193.177.220.log
-rw-r--r--   1 bh694n   nrc         4397 May  2 20:03 alarms_999.193.177.52.log

The command string I used:
Code:
for i in `ls alarm*.log`;do HOST=`/usr/sfw/bin/ggrep -A 1 sysidconf $i|tail -1`;mv $i alarms_${HOST}.log;done

What I get is this:
Code:
bh694n$ ls -ltr        
total 180
.logr--r--   1 bh694n   nrc         5095 May  2 20:03 alarms_wa1dc02scg
.logr--r--   1 bh694n   nrc         4450 May  2 20:03 alarms_wa1dc01scg
.logr--r--   1 bh694n   nrc         4398 May  2 20:03 alarms_wy1pa02scg
.logr--r--   1 bh694n   nrc         4450 May  2 20:03 alarms_wy1pa01scg
.logr--r--   1 bh694n   nrc         4397 May  2 20:03 alarms_al1ga02scg
.logr--r--   1 bh694n   nrc         4400 May  2 20:03 alarms_al1ga01scg
.logr--r--   1 bh694n   nrc         4397 May  2 20:03 alarms_na1tn02scg
.logr--r--   1 bh694n   nrc         5227 May  2 20:03 alarms_ka1mo02scg
.logr--r--   1 bh694n   nrc         4429 May  2 20:03 alarms_ka1mo01scg
.logr--r--   1 bh694n   nrc         4398 May  2 20:03 alarms_sn1tx02scg
.logr--r--   1 bh694n   nrc         4419 May  2 20:03 alarms_sn1tx01scg
.logr--r--   1 bh694n   nrc         5512 May  2 20:03 alarms_cl1oh02scg
.logr--r--   1 bh694n   nrc         4398 May  2 20:03 alarms_ch1il02scg
.logr--r--   1 bh694n   nrc         5508 May  2 20:03 alarms_so1ca02scg
.logr--r--   1 bh694n   nrc         5453 May  2 20:03 alarms_so1ca01scg
.logr--r--   1 bh694n   nrc         4398 May  2 20:03 alarms_oa1ca02scg
.logr--r--   1 bh694n   nrc         4397 May  2 20:03 alarms_oa1ca01scg

Smilie

Where did I err?

Regards,
Bjoern
# 2  
Old 05-03-2016
The output from ggrep -A 1 sysidconf $i ends with a DOS <carriage-return><newline> character pair as a line terminator instead of the UNIX <newline> character line terminator.

Are these log files from a DOS system?

From where you are now, you should be able to recover using ksh or /usr/xpg4/bin/sh (not /bin/sh) to run the for loop:
Code:
for i in alarms*.log
do	mv "$i" "${i%?.log}.log"
done

and if you want to run your original script again and avoid this step, change it from:
Code:
for i in `ls alarm*.log`;do HOST=`/usr/sfw/bin/ggrep -A 1 sysidconf $i|tail -1`;mv $i alarms_${HOST}.log;done

to:
Code:
for i in alarm*.log;do HOST=`/usr/sfw/bin/ggrep -A 1 sysidconf "$i"|tail -1|tr -d '\r'`;mv "$i" "alarms_${HOST}.log";done

# 3  
Old 05-03-2016
Thanks Don, your solution is perfect!

The log files are pure unix. I'm familiar with the Linux grep '-A and -B' to find the lines leading and trailing the context of the matching lines. As far as I know the Solaris grep does not have that function, so I used ggrep.

Regards,
Bjoern

---------- Post updated at 01:44 PM ---------- Previous update was at 01:03 PM ----------

Ugh! Do you know VBscript? I'm attempting to run this renaming command from a VBscript in SecureCRT and get a compilation error:

Code:
Microsoft VBScript error
Error: Invalid character

---------- Post updated at 02:30 PM ---------- Previous update was at 01:44 PM ----------

Quote:
Originally Posted by BRH
Thanks Don, your solution is perfect!

The log files are pure unix. I'm familiar with the Linux grep '-A and -B' to find the lines leading and trailing the context of the matching lines. As far as I know the Solaris grep does not have that function, so I used ggrep.

Regards,
Bjoern

---------- Post updated at 01:44 PM ---------- Previous update was at 01:03 PM ----------

Ugh! Do you know VBscript? I'm attempting to run this renaming command from a VBscript in SecureCRT and get a compilation error:

Code:
Microsoft VBScript error
Error: Invalid character

No worries, had to remove all the double quotes, it works just fine now.

Thanks again Don.

Bjoern
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

X-server problem on Solaris 10

Hi, On my Sun Ultra 45, display was flickering. After changing PCI slot of graphic card (XVR-300), display stablized, but, now X-server not starting. I am getting following messages The X-server can not be started on display : 0... See file/var/dt/Xerrors for details. the output of... (8 Replies)
Discussion started by: rakhsin
8 Replies

2. Shell Programming and Scripting

Renaming multiple files in sftp server in a get files script

Hi, In sftp script to get files, I have to rename all the files which I am picking. Rename command does not work here. Is there any way to do this? I am using #!/bin/ksh For eg: sftp user@host <<EOF cd /path get *.txt rename *.txt *.txt.done ... (7 Replies)
Discussion started by: jhilmil
7 Replies

3. Shell Programming and Scripting

Renaming Multiple Files in FTP Server

Hi Friends, I have a requirement to get multiple files from ftp(remote) server and once the files is copied to local machine , I need to move the files on to a different directory in ftp machine. FTP Machine : 9.9.999.999 Source File Directory : /ftpuser File Pattern: TMS* Now I have... (1 Reply)
Discussion started by: lokeshbao87
1 Replies

4. UNIX for Advanced & Expert Users

Problem with renaming files

I have about 1000 files containing the character * in the name. I need to find these files and replace the * with a -. I am working with HP UX v11. I am using the following command find . -type f -name '*\**' -exec bash -c 'f="$1"; mv "$f" "${f//\*/-}"' - '{}' \ People tell me it works for... (4 Replies)
Discussion started by: MikeDavid
4 Replies

5. Shell Programming and Scripting

Problem renaming files using variables

Hi, I have the following problem: I have a list of files: 1.txt 2.txt 3.txt 4.txt Then I have a list of variable names inside variable.txt: A B C D I'd like to rename 1.txt, 2.txt etc using the variables from variable.txt (2 Replies)
Discussion started by: hubleo
2 Replies

6. Shell Programming and Scripting

Help with renaming files in remote server

I have to write a script to get some files from remote server using FTP and rename it after the FTP. I use wildcard to get the file as i do not no the exact file name or the number of files in the remote server. My script is similar to the following... #!/bin/sh LOG=/Log/ftp.log ftp (FTP... (0 Replies)
Discussion started by: infossiva
0 Replies

7. Shell Programming and Scripting

Loop renaming files w/ a count problem

:wall: Hello there, basically in my program where im stuck at is when it comes to rename the files in a loop. - the program counts the number of files w a given name (works!) - and then if the number of files is greater or equal to the MAX_VERSIONS (numbers of files allowed w the... (1 Reply)
Discussion started by: thurft
1 Replies

8. UNIX for Advanced & Expert Users

problem with renaming files

Hi, I need to rename all the .txt files present in current directory to .dat files respectively in UNIX. for example: $ ls aaa.txt bbb.txt ccc.txt I need to change them to $ ls aaa.dat bbb.dat ccc.dat Is there any UNIX command to do this in one go? ... (3 Replies)
Discussion started by: Johny001
3 Replies

9. Shell Programming and Scripting

Utility or script for renaming files on UNIX web server

Greetings! Does anyone know of a utility or a script for renaming files on a UNIX web server? I've seen several of these types of renaming utilities for Windows, but none for UNIX. I have 10,000 files that I need to rename in a several tier (deep) web site directory. I have the original... (2 Replies)
Discussion started by: everettr
2 Replies

10. UNIX for Advanced & Expert Users

Utility or script for renaming files on UNIX web server

Greetings! Does anyone know of a utility or a script for renaming files on a UNIX web server? I've seen several of these types of renaming utilities for Windows, but none for UNIX. I have 10,000 files that I need to rename in a several tier (deep) web site directory. I have the original... (1 Reply)
Discussion started by: everettr
1 Replies
Login or Register to Ask a Question