script help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting script help
# 1  
Old 07-12-2009
script help

I have some flat files with time stamp,and some not with time stamp ,I need the files to list with time stamp and non time stamp with sequencial manner.I wrote the shell script to list the files with time stamp ,but non time stamp when use another for loop,its giving more file list.Any advise it should be appereciated.
Code:
Files
=====

file120081218-153431-630.txt
file220081318-153431-630.txt
file320081218-153431-630.txt
file420081218-153431-630.txt
file5.txt
file6.txt



for a in `ls -lrt |awk '{print $9}'|awk '{print substr($0,(index($0,"-"))-1),-8}'|sort -u`
do 
echo $a
for a1 in `ls lrt *$a*|awk '{print $9}'`
do
echo $a1
done
done


20081218
file120081218-153431-630.txt
file320081218-153431-630.txt
file420081218-153431-630.txt

20081318
file220081318-153431-630.txt

expecting o/p

20081218
file120081218-153431-630.txt
file320081218-153431-630.txt
file420081218-153431-630.txt

20081318
file220081318-153431-630.txt

file5.txt
file6.txt

Thanks in advance
Akil
# 2  
Old 07-12-2009
Quote:
Originally Posted by akil
...
expecting o/p

20081218
file120081218-153431-630.txt
file320081218-153431-630.txt
file420081218-153431-630.txt

20081318
file220081318-153431-630.txt

file5.txt
file6.txt

[/code]
...
Maybe this ?

Code:
$ 
$ ls -1
file120081218-153431-630.txt
file220081318-153431-630.txt
file320081218-153431-630.txt
file420081218-153431-630.txt
file5.txt
file6.txt
$ 
$ 
$ ls -1 | sort -k1.6,1.28 | awk '{ymd=substr($0,6,8); print ymd != prevymd ? (ymd != ".txt" ? "\n"ymd : "")"\n" :"",$0; prevymd=ymd}'

20081218
 file120081218-153431-630.txt
 file320081218-153431-630.txt
 file420081218-153431-630.txt

20081318
 file220081318-153431-630.txt

 file5.txt
 file6.txt
$ 
$

tyler_durden
# 3  
Old 07-13-2009
Hi ,
I am getting the below error meeage when tring
ls -1 | sort -k1.6,1.28 | awk '{ymd=substr($0,6,8); print ymd != prevymd ? (ymd != ".txt" ? "\n"ymd : "")"\n" :"",$0; prevymd=ymd}'



syntax error The source line is 1.
The error context is
{ymd=substr($0,6,8); print ymd >>> != <<<
awk: The statement cannot be correctly parsed.


Thanks,
Akil
# 4  
Old 07-13-2009
Need to add paraenthesis...
Code:
ls -1 | /bin/sort -k1.6,1.28 | awk '{ymd=substr($0,6,8); print ((ymd != prevymd) ? (ymd != ".txt" ? "\n"ymd : "")"\n" :"",$0); prevymd=ymd}'

Output
Code:
 file5.txt
 file6.txt

20081218
 file120081218-153431-630.txt
 file320081218-153431-630.txt
 file420081218-153431-630.txt

20081318
 file220081318-153431-630.txt

# 5  
Old 07-13-2009
how about below perl script?

Code:
use strict;
my(@arr,%hash);
while(<DATA>){
	chomp;
	if (/^[^0-9]+([0-9]+)([0-9]{4}[0-9]{2}[0-9]{2})/){
		$hash{$2}.=$_."\n";
	}
	elsif(/^[^0-9]+([0-9]+)/){
		push @arr, [$1,$_];
	}
}
foreach my $key(sort {$a<=>$b} keys %hash){
	print $key,"\n";
	print $hash{$key};
	print "\n";
}
print join "\n", map {$_->[1]} sort {$a->[0]<=>$b->[0]} @arr;
__DATA__
file10.txt
file320081218-153431-630.txt
file120081218-153431-630.txt
file220081318-153431-630.txt
file420081218-153431-630.txt
file5.txt
file6.txt

Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question