| |
reda01
Posts: 3
Score: 0
Joined: 5/8/2008
Status: offline
|
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
|
|