gpt4 book ai didi

linux - Shell:如何给一个文件指定父目录的名称?

转载 作者:太空狗 更新时间:2023-10-29 11:04:57 28 4
gpt4 key购买 nike

我是 Shell 编程的初学者。我目前正在编写一个脚本来操作找到的文件。但我需要获取找到的文件的父目录名称。例如,

SEARCH_PATH=/home/test
for file in `find $SEARCH_PATH -name "pattern"`;
do
echo $file;
done

在搜索路径中有几个文件夹有文件模式,

/home/test/type1/log/pattern
/home/test/type2/log/pattern
/home/test/type3/log/pattern

我需要做的是在这些文件中找到“模式”,并将祖父目录的名称与“类型”名称相匹配......

最佳答案

又脏又快:

kent$  dirname $(dirname "/home/test/type1/log/pattern")
/home/test/type1

如果你的文件名中没有 /,你也可以用 sed,awk cut.... 一个 sed 例子:

kent$  echo "/home/test/type1/log/pattern"|sed 's#/[^/]*/[^/]*$##'                                                                                                          
/home/test/type1

编辑

只输入:

基名和目录名:

kent$  basename $(dirname $(dirname "/home/test/type1/log/pattern"))                                                                                                        
type1

用 awk:

kent$  echo "/home/test/type1/log/pattern"|awk -F'/' '$0=$(NF-2)'    
type1

关于linux - Shell:如何给一个文件指定父目录的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674974/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com