结合文件修改日期和“grep"结果通过“查找",在一行中 [英] Combine file modified date and "grep" results through "find", in one line
本文介绍了结合文件修改日期和“grep"结果通过“查找",在一行中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当通过 find
命令将 grep
应用到选定文件时,我们希望显示每个文件的修改日期和时间.最终结果应如下所示:
2016-10-17 Mon 20:38:57 ./rest/47results.php: 5 :σχόλια, ιδέες facebook
从 47test.php 文件运行以下内容:
system('export TZ=":Europe/Athens"; find . -name "*.*" -not ( -path ./admin -prune ) -not ( -path ./people/languages -prune ) -not ( -path ./include -prune ) -type f -mmin -10 -printf "%TY-%Tm-%Td %Ta %TH:%TM:%TS %p
" -exec grep -HTni "σχόλια" {} + ');
我们会为每个修改过的文件和每一行打印不同的行:
2016-10-17 Mon 21:09:55.0000000000 ./47test.php2016-10-17 星期一 20:40:30.0000000000 ./places/00testout.txt2016-10-17 星期一 20:38:57.0000000000 ./rest/47results.php./47test.php: 22 :-exec grep -HTni "σχόλια" {} + ');./rest/47results.php: 5 :σχόλια, ιδέες facebook./rest/47results.php: 6 :σχόλια, ιδέες 推特./rest/47results.php: 7 :Τα σχόλια σας
每个 find
一个,每个 grep
结果一个.
正如开头所提到的,如何将每个grep
的打印结果排序合并在一行中?
2016-10-17 Mon 21:09:55 ./47test.php 22 :-exec grep -HTni "σχόλια" {} + ');2016-10-17 Mon 20:38:57 ./rest/47results.php: 5 :σχόλια, ιδέες facebook2016-10-17 Mon 20:38:57 ./rest/47results.php: 6 :σχόλια, ιδέες twitter2016-10-17 Mon 20:38:57 ./rest/47results.php: 7 :Τα σχόλια σας
解决方案
你可以使用这个find+grep
组合来得到格式化的结果:
while IFS=$' 6' read -r -d '' t f;做sed "s/^/$t/" <(grep -HTni 'σχόλια' "$f")完成<<(find .-type f -mmin -10 -not ( -path ./admin -prune ) -not ( -path ./people/languages -prune ) -not ( -path ./include -prune ) -printf '%TY-%Tm-%Td %Ta %TH:%TM:%.2TS 6%p ')
- 注意使用