如何根据时间删除或查找文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据时间删除或查找文件相关的知识,希望对你有一定的参考价值。

参考技术A 使用find命令按时间筛选

find 参数说明

-amin -n: 最后一次访问发生在 n分钟 之内-amin n:  最后一次访问发生在距离当前时间 n分钟 至 (n+1)分钟-amin +n: 最后一次访问发生在 (n+1)分钟 之外

-atime -n: 最后一次访问发生在 n天 之内-atime n: 最后一次访问发生在 n天 至 (n+1)天 -atime +n: 最后一次访问发生在 (n+1)天 之外

-cmin -n: 最后一次文件状态修改发生在 n分钟 之内-cmin n: 最后一次文件状态修改发生在 n分钟 至 (n+1)分钟-cmin +n: 最后一次文件状态修改发生在 (n+1)分钟 之外

-ctime -n: 最后一次文件状态修改发生在 n天 之内-ctime n: 最后一次文件状态修改发生在 n天 至 (n+1) 天-ctime +n: 最后一次文件状态修改发生在 (n+1)天 之外

-mmin -n: 最后一次文件内容修改发生在 n分钟 之内-mmin n: 最后一次文件内容修改发生在 n分钟 至 (n+1)分钟-mmin +n: 最后一次文件内容修改发生在 (n+1)分钟 之外

-mtime -n: 最后一次文件内容修改发生在 n天 之内-mtime n: 最后一次文件内容修改发生在 n天 至 (n+1)天-mtime +n: 最后一次文件内容修改发生在 (n+1)天 之外

#查找文件内容修改发生在2天之内的文件find/var/log/hive/ -name"*"-mtime -2

执行删除

#删除5天前的文件 # -exec参数,如果查找有返回,可在exec参数后加上需要操作的命令,查找结果用来代替find /var/log/hive/ -name"*"-mtime +5 -exec rm -rfv \;

如何根据一列是不是具有特定值来查找重复行并删除输出?

【中文标题】如何根据一列是不是具有特定值来查找重复行并删除输出?【英文标题】:How can you find duplicate rows and delete output based on whether or not one column has a certain value?如何根据一列是否具有特定值来查找重复行并删除输出? 【发布时间】:2020-01-18 22:44:14 【问题描述】:

我有一个 CSV 文件,其中包含如下数据:

job1,job_type,new
job1,job_type,cancel
job2,job_type,new
job3,job_type,complete

我需要删除 job1,因为它已被取消。我该怎么做呢?

【问题讨论】:

到目前为止你尝试了什么? 尝试研究如何解决这个问题,使用这个网站和其他在线资源作为资源。将任务分解为多个步骤,然后从那里开始: 1. 如何使用 pandas 读取 csv(我看到您添加了标签)。 2.如何删除列具有特定值的行(此处的值为“取消”)。 3. 如何用pandas写csv。如果您在构建解决方案时遇到困难,请随时提问。 我不只是想删除说取消的行,我想删除新行和取消行。 从字面上看,我所说的一切仍然有效。先尝试一下。 向我们展示到目前为止您已经尝试过什么。 您想直接在文件上烧录/替换吗?也许您想加载该文件,然后处理数据,然后再次保存...搜索替换文件,您不妨用 sed 或 perl 来做 lol 【参考方案1】:

让我们试试这个:

import pandas as pd
import numpy as np

from io import StringIO

csvfile = StringIO("""job1,job_type,new
job1,job_type,cancel
job2,job_type,new
job3,job_type,complete""")

df = pd.read_csv(csvfile, header=None)

df[~df[0].isin(df.loc[df[2] == 'cancel',0])].to_csv('out.csv', index=False, header=None)

!more out.csv

输出:

job2,job_type,new
job3,job_type,complete

【讨论】:

【参考方案2】:

您可以尝试在 python 中使用 set 函数。 将每一列或每一行转换为一个列表,然后对该列表进行设置操作。

例如:

A = ["a","b", "a" ]
Dub = list(set(A))
print(Dub)

输出:

["a", "b"] 

【讨论】:

以上是关于如何根据时间删除或查找文件的主要内容,如果未能解决你的问题,请参考以下文章

在Linux中如何删除指定日期之前的一些文件?

如何根据一列是不是具有特定值来查找重复行并删除输出?

Linux按日期查找文件并转移位置或彻底删除方法

添加与删除管理员+根据进程PID查找进程启动文件

如何使用 sed/awk 或其他工具辅助查找和替换 12GB 的颠覆转储文件

find与rm实现查找并删除目录或文件