parsing output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting parsing output
# 1  
Old 07-15-2008
parsing output

I have a file that contains the output of the ls -iR command, something like this:



./results:
2504641011 result_1410 2500957642 result_525
2504641012 result_1425 2500957643 result_540

./tests/1:
2500788755 1 2500788743 1000

./tests/2:
2500788759 3 2500788758 999


I need to parse it so that I have the directory in one file and the fnames and inodes in another. How can I do this?

Thanks!
# 2  
Old 07-15-2008
Code:
cat inp | egrep '^\.' > dirs.txt
cat inp | egrep -v '^\.' > files.t

# 3  
Old 07-15-2008
This should create a file "dirs" with the directories and "files" with the files:

Code:
ls -iR | awk '/^\./{print > "dirs";next}NF{print > "files"}'

# 4  
Old 07-15-2008
That works great!
I need to use this in a Perl script, where I store the ls -iR output in a file and parse that file. If the line contains a directory, store it in a variable. If its a file name and inode, and if the inode is the same as some predefined value, then I need to use the inode and the dir_name. I have the code below, and obviously it doesnt work. Any idea why?

Thanks!

system "ls -iR > temp_inodes_fnames";
open(INO_FNAME, "temp_inodes_fnames") || die "File doesnt exist!";
open(FNAMES, ">>temp_filenames") || die "File doesnt exist!" ;
while($record = <INO_FNAME>){

if($record =~ m/^\ /iSmilie
$dir_name = $record;
($inode,$fname) = split (' ', $record);
if ( $inode == $my_inode) {

print ($inode, "\t", $fname, "\t", $dir_name, "\n");
}
}
close(INO_FNAME);
close(FNAMES);
# 5  
Old 07-15-2008
Off the bat, I don't see where $my_inode is being set, and the logic is unclear.

you want $savedir := <directory>
<inode> eq <myinode> then $fileinfo = <inode> + <dir>
else $fileinfo = <filename>



__--
# 6  
Old 07-15-2008
I'm unclear also, I apologize, what are you trying to accomplish.

Are you trying to report on all filenames which match directory names, or are you searching for a particular inode value?
# 7  
Old 07-15-2008
I need to know the complete path (directory and the filename) to those files whose inodes match a given set of values. Hence if the inodes match a value defined in a hashtable, I need the name of the file as well as the directory to which it belongs and store it in a file. I then read these files at a later stage in the script.

I havent the complete code as the other parts are irrelevant, hence the confusion, sorry about that! Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parsing nsupdate's output

Anybody that's ever used nsupdate knows that it's error management is not very good. I have a wrapper script that when it's got all the information it needs launches the nsupdate command. This is my attempt at parsing the output to help support users quickly know if the command succeded or... (7 Replies)
Discussion started by: maverick72
7 Replies

2. Shell Programming and Scripting

Parsing of TOP output

Hi , i am trying to set up an alert, when CPU usage (0.2%us in below output) is more than 40% top | head | grep '^Cpu' Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.1%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st using CUT, i pulled the value 0.2 and assigned to CPU (variable) CPU=$(expr `top | head -10... (5 Replies)
Discussion started by: Prateek007
5 Replies

3. Shell Programming and Scripting

Parsing Output of a Variable

i have a log file that contains something similar to this: one two three four five six seven eight nine ten eleven twelve thirteen fourteen one two three four five six seven eight nine ten eleven twelve thirteen fourteen one two three four five six seven eight nine ten eleven twelve... (3 Replies)
Discussion started by: SkySmart
3 Replies

4. Shell Programming and Scripting

parsing output

Can somebody provide a solution to parse the following; cat /tmp/xxx Name: QUE_REQU (o.mtaseast-o.dmart) (MTPost queue) Number of messages: 66446 (Age 686 min; Size 214 mb) Backlog (messages): 0 (Age 0 min) Name: QUE_REQU... (6 Replies)
Discussion started by: BeefStu
6 Replies

5. Shell Programming and Scripting

Parsing the output from top

Guys can you help me fix this parse error. Here's my script. #!/bin/bash # Set up limit below NOTIFY="6.0% us 6.1% us 6.2% us 6.3% us 6.5% us 6.6% us 6.7% us 6.8% us 6.9% us 7.0% us" # CPU Usage every minute TOP="$(top -b -n2 -d 00.20 |grep Cpu|tail -1 | awk -F ":" '{ print $2 }' | cut... (3 Replies)
Discussion started by: redtred
3 Replies

6. Shell Programming and Scripting

Parsing the date output

Hi fellows, I need to define a notification for SSL certificate expiration. My Command output is below: (this is the "Expiration Date") Tue Mar 15 09:30:01 2012 So, at 15th Feb (1 month before the expiration), a notification has to be triggered by a script or sth else. How can i set an... (5 Replies)
Discussion started by: oduth
5 Replies

7. Shell Programming and Scripting

parsing ifconfig output

I'm trying to gather information on the interfaces on a large number of servers. If I run ifconfig I will get: eth0 Link encap:Ethernet HWaddr 00:50:56:A2:27:C1 inet addr:10.145.xxx.xxx Bcast:10.152.45.255 Mask:255.255.254.0 ----- eth1 Link... (2 Replies)
Discussion started by: C0ppert0p
2 Replies

8. Shell Programming and Scripting

parsing output of system()

Hi, From the above output of df command I need to parse only 43G (available space) and display it. root@localhost:> df -h /vol1/joy Filesystem Size Used Avail Capacity Mounted on /vol1/joy 180G 137G 43G 76% ... (3 Replies)
Discussion started by: cjjoy
3 Replies

9. Shell Programming and Scripting

Parsing output

I need to parse the following out put and determine if the USB is a DISK and whether or not it's External. If an HBA line contains "USB" then does the next line contain "DISK" and "External". 0:0,31,0: HBA : (aacraid,1) AAC SCSI 0,0,0: DISK : Adaptec ASR4800SAS Volu0001 ... (6 Replies)
Discussion started by: lochraven
6 Replies

10. Shell Programming and Scripting

parsing output from ls command

I have to test the directory name which is obtained from for dir in `ls -l|grep $9 ' i need to check whether it is directory ( if yes, I have to check the first 3 character fo the directory how can I do that? Please help me thanks (3 Replies)
Discussion started by: ajaya
3 Replies
Login or Register to Ask a Question