在存在特定文件的同一目录中创建新文件

时间:2014-10-15 16:53:17

标签: file unix sed

如何在文件a.txt存在的每个目录中创建新文件b.txt。

例如,如果我有以下目录:

/boo --123.txt
     --1234.c
     --a.txt
     /aboo-- 12354.txt
          -- a.txt

然后在/ boo和in / boo / aboo中我想要创建b.txt

如何在不同目录中创建新文件。如果文件存在,它还应该创建一个新文件。

我正在使用命令:

Touch workdirectory/filename.txt

2 个答案:

答案 0 :(得分:1)

从基本路径运行此命令。

for d in `find . -name a.txt`; do  base=`dirname $d`;touch $base/b.txt; done

答案 1 :(得分:0)

使用此:

find -type f -name a.txt -print | sed 's/a.txt$/b.txt/g' | xargs touch

解释explainshell):

  • find -type f -name a.txt -print:查找名为a.txt
  • 的结构中的所有文件
  • sed 's/a.txt$/b.txt/g':将结尾a.txt替换为b.txt
  • xargs touch:并将输出作为参数提供给创建文件的touch