bash – 强制排序命令忽略文件夹名称
发布时间:2020-12-15 21:31:41 所属栏目:安全 来源:网络整理
导读:我从基本文件夹运行以下./ find . -name *.xvi.txt | sort 返回以下排序顺序: ./LT/filename.2004167.xvi.txt./LT/filename.2004247.xvi.txt./pred/2004186/filename.2004186.xvi.txt./pred/2004202/filename.2004202.xvi.txt./pred/2004222/filename.20042
我从基本文件夹运行以下./
find . -name *.xvi.txt | sort 返回以下排序顺序: ./LT/filename.2004167.xvi.txt ./LT/filename.2004247.xvi.txt ./pred/2004186/filename.2004186.xvi.txt ./pred/2004202/filename.2004202.xvi.txt ./pred/2004222/filename.2004222.xvi.txt 如您所见,文件名遵循常规结构,但文件本身可能位于目录结构的不同部分.有没有办法忽略文件??夹名称和/或目录结构,以便排序只返回文件名本身的文件夹/文件名列表?像这样: ./LT/filename.2004167.xvi.txt ./pred/2004186/filename.2004186.xvi.txt ./pred/2004202/filename.2004202.xvi.txt ./pred/2004222/filename.2004222.xvi.txt ./LT/filename.2004247.xvi.txt 我在find和sort命令下尝试了几个不同的开关,但没有运气.我总是可以将所有内容复制到一个文件夹并从那里排序,但是有几百个文件,我希望存在一个更优雅的选项. 谢谢!非常感谢您的帮助. 解决方法find . -name *.xvi.txt | sort -t'.' -k3 -n 会根据你的需要排序.唯一的问题是文件名或目录名是否包含附加点. 为避免它,您可以使用: find . -name *.xvi.txt | sed 's/[0-9]+.xvi.txt$/&/' | sort -t'' -k2 | sed 's///' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |