如何获取find命令的最后结果?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取find命令的最后结果?相关的知识,希望对你有一定的参考价值。

我的find命令的结果产生以下结果

./alex20_0  
./alex20_1  
./alex20_2  
./alex20_3  

我将此结果保存为变量。现在我真正需要的唯一部分是最后一部分或基本上是最高数字或“最新版本”。

因此,从上面的字符串我需要提取的是./alex20_3并将其保存为变量。有没有办法从find命令中提取最后一个目录?

我会做最后的第n个字符命令来提取它,因为它已经按顺序排列,但是一旦我们得到版本./alex20_10等它就不会是相同数量的字符。

答案

试试这个:

your_find_command | tail -n 1
另一答案

find可以按任意顺序列出您的文件。要提取最新版本,您必须对find的输出进行排序。最安全的方法是

find . -maxdepth 1 -name "string" -print0 | sort -zV | tail -zn1

如果您的sorttail的实现不支持-z并且您确定文件名没有换行符,您也可以使用

find . -maxdepth 1 -name "string" -print | sort -V | tail -n1
另一答案

可能有多种方法可以实现这一目标 -

使用'tail'命令(由@Roadowl建议)

找到分支-name alex * |尾巴-n1

使用'awk'命令

找到分支-name alex * | awk'END {print}'

使用'sed'命令

找到分支-name alex * | sed -e'$!d'

其他可能的选项是使用bash脚本,perl或任何其他语言。你最好的选择是你找到的更方便。

另一答案

由于您希望文件名按最高版本排序,因此您可以尝试以下操作

$ ls
alex20_0    alex20_1    alex20_2    alex20_3
$ find .  -iname "*alex*" -print | sort  | tail -n 1
./alex20_3

以上是关于如何获取find命令的最后结果?的主要内容,如果未能解决你的问题,请参考以下文章

mvn命令异常:An error has occurred in Javadoc report generation: Unable to find javadoc command异常已解决(代码片段

如何从命令行获取最后 5 分钟的日志

如何在 Windows 命令行上获取一组文件的最后修改日期?

如何使用导航架构组件从片段中获取结果?

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

中继fetchQuery:如何在没有片段结构的情况下获取查询结果