2015-11-28 122 views
-1

我必须找到所有文件(在~/),这些文件未超过14天,并显示文件内容,以*.txt结尾。我试图做这样的事情:如何在一个命令中查找和显示文件?

find ~/ -mtime +14 | cat '*.txt' 

|之前忽略的一切。你可以帮我吗?

+2

重复的https://stackoverflow.com/questions/33971441/unix-system-comand – Biffen

回答

0

如果只想*.txt文件与-name的find过滤它,猫这些文件只需添加-exec

find ~/ -mtime +14 -name "*.txt" -exec cat {} \; 
+0

非常感谢:) – Honzik

1

在你行

find ~/ -mtime +14 | cat '.txt' 

find将打印的文件名,它们被传送到catstdin,在那里它们被忽略,并且cat将打印文件.txt的内容,该文件可能不包括exi ST。

那么,试试这个:

find ~/ -mtime +14 -exec cat {} \; 

其中-exec .... \;执行....命令,{}find发现的文件名代替。

或者你可以使用xargs

find ~/ -mtime +14 -print0 | xargs -0 cat 

-print0参数find将打印的文件名后面加上一个空字符,而-0参数xargs告诉它输入由空字符隔开,以便在其中包含空格的文件名不会有任何问题。

+0

@Biffen确实 - 更新了答案。谢谢! – Kenney

+0

这个答案很好,但它缺少'.txt'位。 – Biffen

相关问题