微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux-Shell:如何指定文件的指定父目录的名称?

我是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….

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

编辑

仅输入:

基名&​​amp;目录名:

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

与awk:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐