当前位置: 技术问答>linux和unix
Unix 操作 shell编写
来源: 互联网 发布时间:2017-01-08
本文导语: 本帖最后由 neu_solskjaer 于 2011-10-14 17:51:03 编辑 需求如下: /tmp路径下有以下log文件 ID111.20111001143025 ID112.20111001143225 ID111.20111001143526 ID113.20111001144001 ID114.20111001142925 ID114.20111001143710 ... ... 想要把相同ID的log文件只保留...
/tmp路径下有以下log文件
ID111.20111001143025
ID112.20111001143225
ID111.20111001143526
ID113.20111001144001
ID114.20111001142925
ID114.20111001143710
... ...
想要把相同ID的log文件只保留最新的,其他的全部删除。
shell脚本写到一半就不会写了,求教~~
----------------------------------
#!/usr/bin/ksh
find -name "ID*"|sort|while read file
do
#这里怎么循环就不太会写了... ...
done
希望各位大侠能给点指导和建议。
|
#!/bin/bash
preName=""
ls ID* | sort | while read fileName
do
preID=${preName/%.*/};
curID=${fileName/%.*/};
if [ "$preName" != "" -a "$preID" = "$curID" ];then
rm $preName;
echo "rm ${preName}.........";
fi
preName=$fileName
done
|
awk表示鸭梨不大
ls -t -1 ID* | awk -F. '{a[$1]=$0}END{for(i in a)print a[i]}'