陈奇网络工作室

linux命令如何提取文件夹中的特定文件路径

服务器

本文主要展示了linux命令如何提取文件夹中的特定文件路径。 内容简单易懂,请学习一下。 学习后一定会有收获。 以下,让编辑一起看看吧。

最近,需要自动搜索特定文件夹下的特定文件,并分别保存文件路径和文件名。 虽然可以实现使用python的漫游,但是感觉有点复杂。 我想在那里看看能否用linux拥有的命令来完成这个工作。

环境

要搜索的目录结构如下

.|| _ _ _ test|| _ _ test2. txt|| _ _ _ _ test.py|_ _ _ test.txt|| _ _ _ regex .

目标1 :获取所有py文件名

find . -name & #039; *.py& #039; 如果仅使用进行搜索,则会得到包含负载功率的结果

./test/test.py

./test/regex.py

./MongoDB/cnt_fail.py

如果只需要文件名,则可以使用linux提供的命令basename

要使basename处理查找的所有搜索结果,必须使用查找参数-exec

最终命令如下

find.-name& #039; *.py& #039; -execbasename{}\\& quot;

结果:

test.py

regex.py

cnt_fail.py

其中{}用于与-exec选项组合以匹配所有结果并获取文件名。

目标2 :获取所有py文件路径,避免重复,删除开头的“. /”字符

linux还提供了用于获取文件路径的命令dirname

稍微更改以前的命令将显示所有文件路径

find.-name& #039; *.py& #039; -execdirname{}\\& quot;

搜索结果:

./test

./test

./MongoDB

你会发现路径上有重复。 要消除linux重复项,请使用sort添加-u参数,然后使用-u参数消除排序结果中的重复项

我们需要把前面命令的输出作为输入传递给sort,自然就想到了管道

管道命令操作符为|,它只能处理从上一个命令发送的正确输出信息,即标准输出信息。 标准情况

error信息没有直接处理能力。 然后,传递到以下命令,作为标准输入。

添加sort后的命令是

find.-name& #039; *.py& #039; -execdirname{}\\& quot; | sort -u

执行结果如下

./MongoDB

./test

最后,使用cut,删除各道路强度之前的. /文字、自变量-c3-语义提取字符串(开始位置1 )的第3个字符到最后的子字符串

最终命令如下。

find.-name& #039; *.py& #039; -execdirname{}\\& quot; | sort -u | cut -c3-

执行结果:

MongoDB

测试

以上是关于linux命令如何提取文件夹中特定文件路径的内容。 如果你掌握了知识和技能,你就可以分享它并向更多的人展示。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3