Bash 用于循环Shell脚本程序,以查找特定模式中的最新文件
我对shell脚本非常陌生,我有一个场景,其中我有一个文本文件,其中有一个版本列表,如Bash 用于循环Shell脚本程序,以查找特定模式中的最新文件,bash,shell,for-loop,scripting,Bash,Shell,For Loop,Scripting,我对shell脚本非常陌生,我有一个场景,其中我有一个文本文件,其中有一个版本列表,如 1.0.3 1.0.4 1.0.4_a12 1.0.4_b12 我想提取最新版本的值,其中不包含。。我希望文件的输出为1.0.4。有人能帮我写剧本吗?非常感谢。试试看 sed 's/_.*$//g' < input file | sort -n | head -1 sed's//.*$//g'
1.0.3
1.0.4
1.0.4_a12
1.0.4_b12
我想提取最新版本的值,其中不包含。
。我希望文件的输出为1.0.4
。有人能帮我写剧本吗?非常感谢。试试看
sed 's/_.*$//g' < input file | sort -n | head -1
sed's//.*$//g'
试试:
您已经尝试了什么?目录中是否还有其他文件可以查找最新版本?请查看正则表达式,您可以通过这种方式将其过滤掉,然后您可以进行简单的文件名比较,以获得数字最高的文件名。无需使用
for
循环。我建议您从问题中删除该元素,但请随意展示您尝试过的内容,即使它带有for
循环。@pierrefrancois是的,请不要使用for循环。我已经从问题中删除了这一点,我正在尝试类似的方法,但头部需要替换为尾部。这不是根据版本号排序的方法。您必须使用sort-V
,而不是sort-n
。在这个特殊情况下,它起作用了,但在其他情况下不会起作用。
ls * | grep -v '_' | sort -V -r | head -1