Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 列出包含具有特定文件扩展名的文件的目录时出现问题_Unix_Solaris - Fatal编程技术网

Unix 列出包含具有特定文件扩展名的文件的目录时出现问题

Unix 列出包含具有特定文件扩展名的文件的目录时出现问题,unix,solaris,Unix,Solaris,如何仅列出包含特定文件的目录。我正在Solaris设备上运行。例如,我想列出目录ABC的子目录,其中包含以.out、.dat和.log结尾的文件 谢谢以下几点可能适合您: find ABC/ \( -name "*.out" -o -name "*.log" \) -print | while read f do echo "${f%/*}" done | sort -u sort-u位可以只是uniq,但两者都可以工作 应该在bash或ksh上工作。在/bin/sh上可能没有那么多-您必

如何仅列出包含特定文件的目录。我正在Solaris设备上运行。例如,我想列出目录ABC的子目录,其中包含以.out、.dat和.log结尾的文件


谢谢

以下几点可能适合您:

find ABC/ \( -name "*.out" -o -name "*.log" \) -print | while read f
do
  echo "${f%/*}"
done | sort -u
sort-u
位可以只是
uniq
,但两者都可以工作


应该在
bash
ksh
上工作。在
/bin/sh
上可能没有那么多-您必须用类似
echo“${f}”的东西替换变量扩展/[^/]*$;;'或其他将剥离路径最后一个组件的内容
dirname“${f}”
会很好,但我不记得Solaris是否包含该实用程序…

谢谢大家。我想补充这个问题。在列出文件并查看它们之后,如果需要,是否可以使用一个命令或脚本来删除它们?我知道我可以为每个目录执行rm-R,但是如果有一种方法可以编写脚本,那么我更喜欢这种方法。我正在用bash shell运行solaris 10。。。。提前感谢。如果路径中没有空格或其他shell特殊字符,那么在命令末尾添加
| xargs rm-r
应该可以。如果名字中有什么东西会引起贝壳的悲伤,那么读d时;do rm-r“${d}”;完成
可能会更好。。。