Shell:如何获取文件指定的父目录的名称?(Shell: How to a file's specified parent directory's name?)

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

我需要做的是在这些文件中找到'pattern',并将祖父母目录的名称改为'type'名称...

I am a beginner for Shell programming. I am currently writing a script to manipulate found files. but I would be needing to get the parent directories' names for found files. For example,

SEARCH_PATH=/home/test

for file in `find $SEARCH_PATH -name "pattern"`;

do

echo $file;

done

in the search path there are several folders have the file pattern,

/home/test/type1/log/pattern

/home/test/type2/log/pattern

/home/test/type3/log/pattern

What I need to do is to find 'pattern' in those files, and also got the grandparent directory's name to the the 'type' name ...

原文:https://stackoverflow.com/questions/16674974

2019-10-23 18:10

满意答案

又脏又快:

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

编辑

仅限类型:

basename&dirname:

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

type1

用awk:

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

type1

dirty and quick:

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

/home/test/type1

if there is no / in your filename, you could also do with sed, awk cut.... one sed example:

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

/home/test/type1

EDIT

type only:

basename & dirname:

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

type1

with awk:

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

type1

2013-05-21

相关问答

鉴于第1部分(通用前缀)的答案,第2部分的答案是直截了当的; 您将每个名称的前缀分割出来,这可能会在其他选项中使用sed完成。 那么有趣的部分是找到共同的前缀。 最小公共前缀是/ (例如,用于/etc/passwd和/bin/sh )。 最大公共前缀(按定义)出现在所有字符串中,因此我们只需将其中一个字符串拆分为段,并将可能的前缀与其他字符串进行比较。 概述: split name A into components

known_prefix="/"

for each extra componen...

目录版本 get-item是你友好的帮助手。 (get-item $scriptPath ).parent.parent

如果你只想要字符串 (get-item $scriptPath ).parent.parent.FullName

文件版本 如果$scriptPath指向一个文件,那么您必须首先调用Directory属性,因此调用将如下所示 (get-item $scriptPath).Directory.Parent.Parent.FullName

备注 这将仅在$scriptPath...

在R中,相对文件位置总是相对于当前工作目录。 你可以像这样明确地设置你的工作目录: setwd("~/some/location")

一旦设置完成,您可以获取与当前工作目录相关的源文件。 source("some_script.R") # In this directory

source("../another_script.R") # In the parent directory

source("folder/stuff.R") # In a child d...

运行dirname两次(嵌套)。 ~$ dirname $PWD

/home

~$ dirname `dirname $PWD`

/

~$

Run dirname twice (nested). ~$ dirname $PWD

/home

~$ dirname `dirname $PWD`

/

~$

访问URL时,您将无法从Amazon S3获取目录列表页面 。 最接近的是XML对象列表,您必须为其授予对桶策略的ListObjects权限。 它看起来像这样: 此XML文件似乎没有与之关联的任何样式信息。 文档树如下所示。

my-bucket

1000

引用File.getParent() javadoc(强调我的): 返回此抽象路径名父级的路径名字符串,如果此路径名未命名父目录,则返回null 。 抽象路径名的父节点由路径名的前缀(如果有)和路径名名称序列中除最后一个以外的每个名称组成。 如果名称序列为空,则路径名不会命名父目录。 请记住, File对象表示路径字符串 ,而不是文件系统上的实际文件。 字符串""没有父项。 字符串"a/b/c"具有"a/b"作为父项,即使它们没有物理存在。 所以,首先你必须通过调用getCanonicalFile...

你不能。 也apt 。 软件包管理器只需将所需的数据/变量写入文件中,然后由程序本身,程序的补丁或包装器读取。 好的例子可以在/etc/default/* 。 这些文件具有可变定义,有些甚至可以帮助描述它们的来源: $ cat /etc/default/ssh

# Default settings for openssh-server. This file is sourced by /bin/sh from

# /etc/init.d/ssh.

# Options to pass to ssh...

标准C中没有这样的功能。您可以在Windows上尝试运气:GetFullPathName http://msdn.microsoft.com/en-us/library/aa364963%28v=vs.85%29.aspx 然后也许_splitpath http://msdn.microsoft.com/en-us/library/e737s6tf%28v=vs.80%29.aspx 但是正如所写的那样,做这类事情并不是标准功能。 There is no such function in Stan...

这是因为$对Make有特殊的含义,所以如果你想把它传递给shell,你必须“逃避”它。 如果是Make,你可以通过加倍来逃避美元符号。 所以你必须使用$$PWD 。 另外,你所做的并不是最好的方法 - 如果可能的话,最好避免使用shell并使用Make功能。 在你的情况下,做你想要的最好的方法是: BUILD_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/../../build)

你必须把上面的行放在make文件中,靠近最上面,这样它才...

又脏又快: kent$ dirname $(dirname "/home/test/type1/log/pattern")

/home/test/type1

如果您的文件名中没有/ ,您也可以使用sed,awk cut ....一个sed示例: kent$ echo "/home/test/type1/log/pattern"|sed 's#/[^/]*/[^/]*$##' ...

相关文章

Gao Yuanyuan from after 2005 drama " world fir

...

出现bad interpreter:No such file or directory的原因 是文件格

...

这篇文件写的非常好,推荐大家重温一下: http://highscalability.com/blog

...

调用文件系统(FS)Shell命令应使用 bin/Hadoop fs <args>的形式。

...

Data Week: Becoming a data scientist Data Pointed,

...

Windowsis an extremely effective and a an efficient

...

hadoop变得越来越热门,但是hadoop的设计是用来处理静态数据和批处理任务,流处理实施起来不是很

...

http://www.codeproject.com/Articles/42799/Storm-the

...

Bottega Veneta ogłoszenie Fire continues Daleko ali

...

http://spark-project.org/ 项目首页 http://shark.cs.berk

...

最新问答

如果启用了复制处理程序,请确保将其置于其中一个安全角色之后。 我见过人们做的另一件事是在不同的端口上运行admin。 最好在需要auth的页面上使用SSL,这样你就不会发送明确的密码,因此管理和复制将发生在8443上,而常规查询将在8080上发生。 如果您要签署自己的证书,请查看此有用的SO页面: 如何在特定连接上使用不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re

第一:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的大写'T')。 xpath区分大小写。 第二:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗示你在外部td中有一个'td'元素,而它们是兄弟姐妹。 有很多方法可以在这里获得制作和模型

这是你的答案: http://jsfiddle.net/gPsdk/40/ .preloader-container { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: #FFFFFF; z-index: 5; opacity: 1; -webkit-transition: all 500ms ease-out;

问题是,在启用Outlook库引用的情况下, olMailItem是一个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引用此Object 。 这基本上是一个递归错误,因为你有对象试图自己分配自己。 还有另一个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另一个错误(可能是

我建议使用wireshark http://www.wireshark.org/通过记录(“捕获”)设备可以看到的网络流量副本来“监听”网络上发生的对话。 当您开始捕获时,数据量似乎过大,但如果您能够发现任何看起来像您的SOAP消息的片段(应该很容易发现),那么您可以通过右键单击并选择来快速过滤到该对话'关注TCP Stream'。 然后,您可以在弹出窗口中查看您编写的SOAP服务与Silverlight客户端之间的整个对话。 如果一切正常,请关闭弹出窗口。 作为一个额外的好处,wireshar

Android默认情况下不提供TextView的合理结果。 您可以使用以下库并实现适当的aligntment。 https://github.com/navabi/JustifiedTextView Android Does not provide Justified aligntment of TextView By default. You can use following library and achieve proper aligntment. https://github.com/

你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运行的方式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is HP_PAV

12个十六进制数字(带前导0x)表示48位。 那是256 TB的虚拟地址空间。 在AMD64上阅读wiki(我假设你在上面,对吗?)架构http://en.wikipedia.org/wiki/X86-64 12 hex digits (with leading 0x) mean 48 bits. That is 256 TB of virtual address space. Read wiki on AMD64 (I assume that you are on it, right?) ar

这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass: class_attribute = [] 这里已经为类定义了MyClass.class_attribute ,您可以使用它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。 您只能在实例上使用它们。 在方法__init__中定

shell获取目录的上级目录_Shell:如何获取文件指定的父目录的名称?(Shell: How to a file's specified parent directory's name?)...相关推荐

  1. tar解压单个文件到特定目录_技术|如何解压 tar 文件到不同的目录中

    我想要解压一个tar文件到一个叫/tmp/data的指定目录.我该如何在Linux或者类Unix的系统中使用tar命令解压一个tar文件到不同的目录中? 你不必使用cd命令切换到其他的目录并解压.可以 ...

  2. linux显示父目录,linux – 仅列出文件的公共父目录

    此脚本读取行并在每次迭代中存储公共前缀: # read a line into the variable "prefix",split at slashes IFS=/ read ...

  3. 解决VS2010子目录中的.cpp文件引用上一级目录的stdafx.h找不到定义的问题

    Source目录 |-- stdafx.h |--Util目录 |--Util.h |--Util.cpp 现在的发现Util.cpp各种变量的定义全是红色波浪线,找不到定义,但是却能够编译过 问题就 ...

  4. linux将u盘文件拷贝到根目录,如何将U盘上的文件复制到linux目录下

    如何将U盘上的文件复制到linux目录下 将U盘上的文件复制到linux目录下涉及到cp以及mount等命令,下面先讲一个各个命令 1. Linux 常用命令说明 cp 该命令实现Linux下文件的拷 ...

  5. 移动端获取当前屏幕的高度_css中获取屏幕的宽 高

    阅读数:26120 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body ...

  6. shell获取目录的上级目录_linux 下获得当前目录,上级目录,文件夹名

    $PWD  /pwd   当前目录 dname= $(dirname "$PWD")  上级目录 basename '$PWD'  当前文件夹名 !=====以下转载 删除包含特定 ...

  7. Python - 获取当前目录/上级目录/上上级目录

    / 前言 / 我们在Python开发中时常需要读取配置文件.获取当前文件所在路径, 本文将会介绍Python获取当前目录/上级目录/上上级目录-等操作        Python脚本编译时使用的是Py ...

  8. mysql回到上级目录_获取当前目录的上级目录

    获取目录 获取当前目录可以使用AppDomain.CurrentDomain.BaseDirectory. 获取当前目录的上级目录Path.GetFullPath("..\\") ...

  9. java获取上级目录_Java如何获取文件的父目录或上级目录?

    在Java程序中,如何获取文件的父目录或上级目录? 以下示例显示如何使用File类的file.getParent()方法获取文件的父目录. package com.yiibai; import jav ...

最新文章

  1. Python可视化matplotlib多子图可视化(Multiple Subplots):plt.axes()、plt.subplot()、plt.subplots()、
  2. MySQL GROUP BY:分组查询
  3. 排序算法——(1)简介
  4. java连接mysql数据库jdbc
  5. 7-104 6翻了 (15 分)
  6. 内存对齐 | 原来字段顺序还能影响结构体占用的内存空间
  7. Polycom高清视频会议桌面系统HDX 4000
  8. grafana 中国地图 echarts
  9. vue实现钉钉扫码登录
  10. 教育网系统服务器域名地址,中国教育网DNS IP地址大全(32个省)
  11. AMOS软件简介【SPSS 050期】
  12. 安卓课设:翻译君APP(附开源地址)
  13. 台式计算机没有任务栏,电脑任务栏不见了怎么恢复 电脑任务栏怎么设置并排显示...
  14. 职场:因抢一个月饼,惨遭阿里开除,如今他把生活过成这样
  15. python成绩统计_巧用python对学生成绩计算总分并排序
  16. MongoDB安装Python操作MongoDB
  17. css3加号图标_css实现“加号”效果的实例代码
  18. DEJA_VU3D - Cesium功能集 之 019-军事标绘系列十一:燕尾箭头
  19. 滴滴2020校招算法笔试 2019.08.27
  20. 金蝶EAS,序时簿界面ListUI数据不允许修改、删除

热门文章

  1. Visual Basic快捷教程——函数与子程序
  2. 【windows11】win11 简单配置及快捷键
  3. 彻底理解安卓应用无响应机制
  4. 深入理解transformer源码
  5. 我的世界手机版开服务器领地系统,我的世界手机版领地指令大全 领地指令怎么用...
  6. 虚拟机VMware 安装centos、常规配置、共享文件等
  7. 目标检测-VOC数据集txt文件制作方法
  8. 以太坊《私有链和联盟链的机会与挑战》报告
  9. 构建Oracle高可用环境HA rac:企业级高可用数据库架构、实战与经验总结
  10. 1.1 C++小游戏——创造世界