Delete all files up to a sequence

All,

Please can you help me with this ?

I have a requirement to compress the files older than a sequence number.

Say the directory has the following files

a_101
a_102
a_103
a_104
a_105
a_106
a_107
a_108

I would like to compress all files based on a number i supply. IE. if i get 106, i would like to compress everything upto 105. How do it achieve this please ? Files are usually in ascending order of time.

Thanks in advance.

ls or whatever | sed -e "/_$number$/q" | xargs gzip -9

Thanks very much. Also, how do i get the middle part in this file name ? ie. i need to extract 989. And that would grow to 1000 or 100000. So, what command can i use other than cut

JHPP1_1_989_639156890.arc

Thank you. But that command compressed everything.. Not something i was looking.

UKPP1> ls
UKPP1_1_983_639156890.arc UKPP1_1_985_639156890.arc UKPP1_1_987_639156890.arc
UKPP1_1_984_639156890.arc UKPP1_1_986_639156890.arc
[oraukp] "gbwxvcsmbc1:"/gbwaapsmbp1/oraarch/oradata/UKPP1/arch/test:
UKPP1> ls | sed -e "/UKPP1_1_$number$/q" | xargs gzip -9
[oraukp] "gbwxvcsmbc1:"/gbwaapsmbp1/oraarch/oradata/UKPP1/arch/test:
UKPP1> ls -lart

[oraukp] "gbwxvcsmbc1:"/gbwaapsmbp1/oraarch/oradata/UKPP1/arch/test:
UKPP1> ls
UKPP1_1_983_639156890.arc.gz UKPP1_1_986_639156890.arc.gz
UKPP1_1_984_639156890.arc.gz UKPP1_1_987_639156890.arc.gz
UKPP1_1_985_639156890.arc.gz

You need to plug in the particular $number you want.

The regular expression /_$number$/ with number=999 turns into /_999$/ which matches 999 at end of line, if immediately preceded by an underscore.

If you don't want end of line, construct a regular expression which matches the context you want. Superficially, something like /_$number_/ would seem to match the file names you gave as examples.

For playing around, maybe use "echo gzip" instead of just "gzip" to see what would happen, without making it actually happen.

Hello Thanks very much.. I tired it as you said but still no luck. I was expecting it to compress every file older than 987 ( NUM set to 987) but it did that for only one file

UKPP1> ls | sed -e "/UKPP1_1_$NUM_/q" | xargs gzip -9
gzip: test is a directory -- ignored
[oraukp] "gbwxvcsmbc1:"/gbwaapsmbp1/oraarch/oradata/UKPP1/arch:
UKPP1> ls -lart
total 2228907
drwxr-xr-x 3 oraukp dba 96 Mar 12 10:10 ..
-rw-r----- 1 oraukp dba 330752 Mar 31 19:51 UKPP1_1_890_639156890.arc
-rw-r----- 1 oraukp dba 592896 Mar 31 19:51 UKPP1_1_894_639156890.arc
-rw-r----- 1 oraukp dba 1168384 Mar 31 19:51 UKPP1_1_891_639156890.arc
-rw-r----- 1 oraukp dba 459264 Mar 31 19:51 UKPP1_1_897_639156890.arc
-rw-r----- 1 oraukp dba 865792 Mar 31 19:51 UKPP1_1_892_639156890.arc
-rw-r----- 1 oraukp dba 1816058 Mar 31 19:51 UKPP1_1_888_639156890.arc.gz
-rw-r----- 1 oraukp dba 3683840 Mar 31 19:51 UKPP1_1_889_639156890.arc
-rw-r----- 1 oraukp dba 5373952 Mar 31 19:51 UKPP1_1_893_639156890.arc
-rw-r----- 1 oraukp dba 56283136 Mar 31 19:51 UKPP1_1_896_639156890.arc
-rw-r----- 1 oraukp dba 93237760 Mar 31 19:51 UKPP1_1_895_639156890.arc
-rw-r----- 1 oraukp dba 3941888 Mar 31 19:59 UKPP1_1_898_639156890.arc
-rw-r----- 1 oraukp dba 3380736 Mar 31 20:01 UKPP1_1_899_639156890.arc
-rw-r----- 1 oraukp dba 1024 Mar 31 20:05 UKPP1_1_900_639156890.arc
-rw-r----- 1 oraukp dba 5167616 Mar 31 20:34 UKPP1_1_901_639156890.arc
-rw-r----- 1 oraukp dba 706560 Mar 31 20:39 UKPP1_1_902_639156890.arc
-rw-r----- 1 oraukp dba 117760 Mar 31 20:44 UKPP1_1_903_639156890.arc
-rw-r----- 1 oraukp dba 1024 Mar 31 20:48 UKPP1_1_904_639156890.arc
-rw-r----- 1 oraukp dba 137216 Mar 31 20:50 UKPP1_1_905_639156890.arc
-rw-r----- 1 oraukp dba 1290752 Mar 31 20:59 UKPP1_1_906_639156890.arc
-rw-r----- 1 oraukp dba 1133568 Mar 31 21:02 UKPP1_1_907_639156890.arc
-rw-r----- 1 oraukp dba 37888 Mar 31 21:03 UKPP1_1_908_639156890.arc
-rw-r----- 1 oraukp dba 1024 Mar 31 21:05 UKPP1_1_909_639156890.arc
-rw-r----- 1 oraukp dba 93237760 Mar 31 22:31 UKPP1_1_910_639156890.arc
-rw-r----- 1 oraukp dba 93237760 Mar 31 22:32 UKPP1_1_911_639156890.arc
-rw-r----- 1 oraukp dba 80937472 Apr 1 02:12 UKPP1_1_912_639156890.arc
-rw-r----- 1 oraukp dba 44544 Apr 1 02:13 UKPP1_1_913_639156890.arc
-rw-r----- 1 oraukp dba 109056 Apr 1 02:15 UKPP1_1_914_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 1 02:15 UKPP1_1_915_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 1 02:15 UKPP1_1_916_639156890.arc
-rw-r----- 1 oraukp dba 157184 Apr 1 02:15 UKPP1_1_917_639156890.arc
-rw-r----- 1 oraukp dba 12142080 Apr 1 05:00 UKPP1_1_918_639156890.arc
-rw-r----- 1 oraukp dba 686592 Apr 1 05:00 UKPP1_1_919_639156890.arc
-rw-r----- 1 oraukp dba 44063232 Apr 1 12:00 UKPP1_1_920_639156890.arc
-rw-r----- 1 oraukp dba 1067008 Apr 1 12:01 UKPP1_1_921_639156890.arc
-rw-r----- 1 oraukp dba 93231616 Apr 1 14:14 UKPP1_1_922_639156890.arc
-rw-r----- 1 oraukp dba 65203712 Apr 1 16:00 UKPP1_1_923_639156890.arc
-rw-r----- 1 oraukp dba 2560 Apr 1 16:00 UKPP1_1_924_639156890.arc
-rw-r----- 1 oraukp dba 93295616 Apr 1 22:30 UKPP1_1_925_639156890.arc
-rw-r----- 1 oraukp dba 93237760 Apr 1 22:32 UKPP1_1_926_639156890.arc
-rw-r----- 1 oraukp dba 83577344 Apr 2 02:11 UKPP1_1_927_639156890.arc
-rw-r----- 1 oraukp dba 2048 Apr 2 02:11 UKPP1_1_928_639156890.arc
-rw-r----- 1 oraukp dba 186368 Apr 2 02:12 UKPP1_1_929_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 2 02:12 UKPP1_1_930_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 2 02:12 UKPP1_1_931_639156890.arc
-rw-r----- 1 oraukp dba 2560 Apr 2 02:13 UKPP1_1_932_639156890.arc
-rw-r----- 1 oraukp dba 15537664 Apr 2 05:00 UKPP1_1_933_639156890.arc
-rw-r----- 1 oraukp dba 4608 Apr 2 05:01 UKPP1_1_934_639156890.arc
-rw-r----- 1 oraukp dba 59206144 Apr 2 12:00 UKPP1_1_935_639156890.arc
-rw-r----- 1 oraukp dba 269312 Apr 2 12:01 UKPP1_1_936_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 2 15:13 UKPP1_1_938_639156890.arc
-rw-r----- 1 oraukp dba 45271552 Apr 2 15:13 UKPP1_1_937_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 2 15:13 UKPP1_1_939_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 2 15:13 UKPP1_1_940_639156890.arc
-rw-r----- 1 oraukp dba 3918848 Apr 2 16:00 UKPP1_1_941_639156890.arc
-rw-r----- 1 oraukp dba 2178048 Apr 2 16:00 UKPP1_1_942_639156890.arc
-rw-r----- 1 oraukp dba 93237760 Apr 2 22:14 UKPP1_1_943_639156890.arc
-rw-r----- 1 oraukp dba 93237760 Apr 2 22:31 UKPP1_1_944_639156890.arc
-rw-r----- 1 oraukp dba 92831232 Apr 3 02:11 UKPP1_1_945_639156890.arc
-rw-r----- 1 oraukp dba 2560 Apr 3 02:11 UKPP1_1_946_639156890.arc
-rw-r----- 1 oraukp dba 183808 Apr 3 02:13 UKPP1_1_947_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 3 02:13 UKPP1_1_948_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 3 02:13 UKPP1_1_949_639156890.arc
-rw-r----- 1 oraukp dba 3072 Apr 3 02:13 UKPP1_1_950_639156890.arc
-rw-r----- 1 oraukp dba 15377408 Apr 3 05:00 UKPP1_1_951_639156890.arc
-rw-r----- 1 oraukp dba 614400 Apr 3 05:01 UKPP1_1_952_639156890.arc
-rw-r----- 1 oraukp dba 42259968 Apr 3 12:00 UKPP1_1_953_639156890.arc
-rw-r----- 1 oraukp dba 1185792 Apr 3 12:01 UKPP1_1_954_639156890.arc
-rw-r----- 1 oraukp dba 21061120 Apr 3 16:00 UKPP1_1_955_639156890.arc
-rw-r----- 1 oraukp dba 2048 Apr 3 16:00 UKPP1_1_956_639156890.arc
-rw-r----- 1 oraukp dba 95861248 Apr 3 22:30 UKPP1_1_957_639156890.arc
-rw-r----- 1 oraukp dba 93230080 Apr 3 22:32 UKPP1_1_958_639156890.arc
-rw-r----- 1 oraukp dba 92155392 Apr 4 02:12 UKPP1_1_959_639156890.arc
-rw-r----- 1 oraukp dba 13824 Apr 4 02:12 UKPP1_1_960_639156890.arc
-rw-r----- 1 oraukp dba 178688 Apr 4 02:14 UKPP1_1_961_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 4 02:14 UKPP1_1_962_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 4 02:14 UKPP1_1_963_639156890.arc
-rw-r----- 1 oraukp dba 1536 Apr 4 02:14 UKPP1_1_964_639156890.arc
-rw-r----- 1 oraukp dba 16184320 Apr 4 05:00 UKPP1_1_965_639156890.arc
-rw-r----- 1 oraukp dba 6656 Apr 4 05:01 UKPP1_1_966_639156890.arc
-rw-r----- 1 oraukp dba 31097344 Apr 4 10:57 UKPP1_1_967_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 4 11:32 UKPP1_1_968_639156890.arc
-rw-r----- 1 oraukp dba 17374720 Apr 4 11:32 UKPP1_1_969_639156890.arc
-rw-r----- 1 oraukp dba 50688 Apr 4 11:32 UKPP1_1_970_639156890.arc
-rw-r----- 1 oraukp dba 6469632 Apr 4 12:00 UKPP1_1_971_639156890.arc
-rw-r----- 1 oraukp dba 912384 Apr 4 12:01 UKPP1_1_972_639156890.arc
-rw-r----- 1 oraukp dba 23035392 Apr 4 16:00 UKPP1_1_973_639156890.arc
-rw-r----- 1 oraukp dba 2048 Apr 4 16:01 UKPP1_1_974_639156890.arc
-rw-r----- 1 oraukp dba 97453056 Apr 4 22:31 UKPP1_1_975_639156890.arc
-rw-r----- 1 oraukp dba 93237760 Apr 4 22:32 UKPP1_1_976_639156890.arc
-rw-r----- 1 oraukp dba 93237760 Apr 5 03:00 UKPP1_1_977_639156890.arc
-rw-r----- 1 oraukp dba 1119232 Apr 5 03:11 UKPP1_1_978_639156890.arc
-rw-r----- 1 oraukp dba 1536 Apr 5 03:11 UKPP1_1_979_639156890.arc
-rw-r----- 1 oraukp dba 88064 Apr 5 03:12 UKPP1_1_980_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 5 03:12 UKPP1_1_981_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 5 03:12 UKPP1_1_982_639156890.arc
-rw-r----- 1 oraukp dba 5120 Apr 5 03:12 UKPP1_1_983_639156890.arc
-rw-r----- 1 oraukp dba 45633536 Apr 5 06:10 UKPP1_1_984_639156890.arc
-rw-r----- 1 oraukp dba 2048 Apr 5 06:10 UKPP1_1_985_639156890.arc
-rw-r----- 1 oraukp dba 277504 Apr 5 10:02 UKPP1_1_987_639156890.arc
-rw-r----- 1 oraukp dba 18826752 Apr 5 10:02 UKPP1_1_986_639156890.arc
-rw-r----- 1 oraukp dba 5128192 Apr 5 10:02 UKPP1_1_988_639156890.arc
-rw-r----- 1 oraukp dba 14983680 Apr 5 12:00 UKPP1_1_989_639156890.arc
-rw-r----- 1 oraukp dba 1068032 Apr 5 12:01 UKPP1_1_990_639156890.arc
-rw-r----- 1 oraukp dba 20111872 Apr 5 16:00 UKPP1_1_991_639156890.arc
-rw-r----- 1 oraukp dba 712192 Apr 5 16:00 UKPP1_1_992_639156890.arc
-rw-r----- 1 oraukp dba 93342720 Apr 6 03:00 UKPP1_1_993_639156890.arc
drwxr-xr-x 2 oraukp dba 1024 Apr 6 11:39 test
drwxr-xr-x 3 oraukp dba 5120 Apr 6 11:43 .
[oraukp] "gbwxvcsmbc1:"/gbwaapsmbp1/oraarch/oradata/UKPP1/arch:
UKPP1>
UKPP1> echo $NUM
987

Sorry, typical newbie mistake: it's looking for "$NUM_" and finding it undefined. You need to say "${NUM}_" in order to show where the variable name ends and the context string starts.

Many thanks. It works a treat as suggested by you.

Thanks mate. Much appreciated

for i in `ls -l a* | awk 'BEGIN{FS="_"}{print $NF}'`
do
	if [ $i -le $1 ]
	then
		gzip "a_"$i
	fi
done

Hello,

not sure if i am doing anything wrong.. but all the files are getting gzipped. Can someone help

-rw-r----- 1 oraukp dba 93237760 Apr 6 19:51 UKPP1_1_994_639156890.arc
-rw-r----- 1 oraukp dba 64181248 Apr 7 02:10 UKPP1_1_995_639156890.arc
-rw-r----- 1 oraukp dba 2048 Apr 7 02:10 UKPP1_1_996_639156890.arc
-rw-r----- 1 oraukp dba 86528 Apr 7 02:11 UKPP1_1_997_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 7 02:11 UKPP1_1_998_639156890.arc
-rw-r----- 1 oraukp dba 1024 Apr 7 02:11 UKPP1_1_999_639156890.arc
-rw-r----- 1 oraukp dba 115200 Apr 7 02:12 UKPP1_1_1000_639156890.arc
-rw-r----- 1 oraukp dba 14367744 Apr 7 05:00 UKPP1_1_1001_639156890.arc
-rw-r----- 1 oraukp dba 587776 Apr 7 05:00 UKPP1_1_1002_639156890.arc
-rw-r----- 1 oraukp dba 38299648 Apr 7 12:00 UKPP1_1_1003_639156890.arc
-rw-r----- 1 oraukp dba 13824 Apr 7 12:01 UKPP1_1_1004_639156890.arc
drwxr-xr-x 2 oraukp dba 5120 Apr 7 12:10 .
drwxr-xr-x 4 oraukp dba 96 Apr 7 12:24 ..
[oraukp] "gbwxvcsmbc1:"/gbwaapsmbp1/ora01/app/oracle/admin/UKPP1/arch:
UKPP1> COUNT=999
[oraukp] "gbwxvcsmbc1:"/gbwaapsmbp1/ora01/app/oracle/admin/UKPP1/arch:
UKPP1> ls | sed -e "/UKPP1_1_${COUNT}_/q" | xargs gzip -9
[oraukp] "gbwxvcsmbc1:"/gbwaapsmbp1/ora01/app/oracle/admin/UKPP1/arch:
UKPP1> ls -lart
total 51738
-rw-r----- 1 oraukp dba 24172665 Apr 6 19:51 UKPP1_1_994_639156890.arc.gz
-rw-r----- 1 oraukp dba 15265903 Apr 7 02:10 UKPP1_1_995_639156890.arc.gz
-rw-r----- 1 oraukp dba 549 Apr 7 02:10 UKPP1_1_996_639156890.arc.gz
-rw-r----- 1 oraukp dba 219 Apr 7 02:11 UKPP1_1_998_639156890.arc.gz
-rw-r----- 1 oraukp dba 27022 Apr 7 02:11 UKPP1_1_997_639156890.arc.gz
-rw-r----- 1 oraukp dba 223 Apr 7 02:11 UKPP1_1_999_639156890.arc.gz
-rw-r----- 1 oraukp dba 27332 Apr 7 02:12 UKPP1_1_1000_639156890.arc.gz
-rw-r----- 1 oraukp dba 3632384 Apr 7 05:00 UKPP1_1_1001_639156890.arc.gz
-rw-r----- 1 oraukp dba 143206 Apr 7 05:00 UKPP1_1_1002_639156890.arc.gz
-rw-r----- 1 oraukp dba 9693938 Apr 7 12:00 UKPP1_1_1003_639156890.arc.gz
-rw-r----- 1 oraukp dba 4766 Apr 7 12:01 UKPP1_1_1004_639156890.arc.gz
drwxr-xr-x 4 oraukp dba 96 Apr 7 12:24 ..
drwxr-xr-x 2 oraukp dba 5120 Apr 7 12:26 .

awk 'BEGIN{
 s="zip backup " 
 printf "Which number? eg(106): "
 getline number < "-"
}
{
  split(FILENAME,f,"_")
  if ( f[3] < number ) {
   s=s" "FILENAME
  }
}
END {
 print s
 #system(s) #uncomment to use.
}' UKP*