Hello !
I wrote a bash script to to be run into a folder where I have many log files generated automatically but they have these name format : *-*-*-*.*
I would like to delete all files having the SAME first delimiter ex a1-*-*-.* BUT keep the latest version (the most recent file).
Example, I could find in my folder these files :
a1-dd-ff-rr.log
a1-ff-rr-ww.log
a1-87-43-ws.log
a1-re-ee-ww.log
a2-ww-11-lk.log
a2-uz-21-ws.log
.
.
.
q-wq-we-tf.*
q-ew-ws-we.*
..
.
po-we-we-ed.log
po-87-pl-lo.log
po-ws-ed-rf.log
po-ws-aa-qq.log
The idea was to filter first the beginning of each file and put them in a list,
sort that list by date, delete all but keep the most recent one.
In the bash script below, it does the work fine, I am trying to do the Same thing in PowerShell for windows, Do you know the equivalent to the command UNIQ ?
Any idea how to do it in PS ? Thanks
Here is the bash script :
# get a list of prefixes by splitting the filenames on the "-" and making that a list of unique entries
for PREFIX in `ls | awk -F- '{print $1}' | uniq` ; do
# Loop through the prefixes and while we have more than one of that type remove the one with the oldest timestamp
while [ `ls $PREFIX-*|wc -l` -gt 1 ] ; do
rm `ls -tr $PREFIX-* | head -1`
done
done