我正在尝试编写一个shell脚本,它接受包含特定数字的文件的一行,问题是我需要对此文件进行排序,因为我需要具有某个特定名称的最后一个文件的行。 我写了这段代码,但似乎不起作用
sort -n | find -name '*foo*' -exec grep -r -F '11111' {} \;
文件排序非常重要,因为我需要在最后一个文件中搜索。文件名的类型为“res_ yyyy _ mm _ dd _foo”,它们必须由 yyyy 如果是 mm ,那么
答案 0 :(得分:0)
听起来如下:
cd home/input_output.1/inp.1/old_res23403/
ls -1 | sort -r | xargs cat -- | grep '11111' | head -n1
ls -1
在当前目录中生成一个文件名列表,每行一个。
sort -r
按反向字母顺序对它们进行排序,(假设您的名称使用大端日期格式)将最新文件放在第一位。
xargs cat --
连接所有这些文件的内容。
grep '11111'
查找包含11111
的所有行。
head -n1
将结果限制在第一行。
实际上,这会以相反的顺序为您提供文件的第一个匹配行,即最后一行。