我正在寻找如何使用powershell删除一个文件夹中多个文本文件(* .txt)中排名前五的最旧行的方法。每个文本文件都以逗号分隔,每行以日期" mm / dd / yyyy"开头。 (除了标题)
此代码将删除早于' 01/01 / 2014'但我需要删除前5行最旧的行(记录从最旧到最新排序),所以我需要删除2到6行(每个文件的第一行是标题,我想保留它)。有什么想法吗?
foreach ($file in gci *.txt){
(gc $file) |
? {[datetime]$_.split(',')[0] -ge '01/01/2014'
} | set-content $file
我还发现此网页http://powershell-tips.blogspot.ca/2011/05/display-top-n-lines-or-last-1n-lines-of.html可能基于此网页。
答案 0 :(得分:0)
您可以使用-skip
Select-Object
foreach ($file in gci *.txt){
(gc $file) |
? {[datetime]$_.split(',')[0] -ge '01/01/2014'
} | Select-Object -skip 5 | set-content $file