服务器
本文主要展示了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