繁体   English   中英

将文本添加到多个文件夹中多个文件的开头

[英]Add a text to the beginning of multiple files in multiple folders

我正在编写一个bash脚本,作为其中的一部分,我需要执行以下操作:

我有100个目录,它们的名称取决于它们的写入时间,例如0、0.01、0.02、0.05等。 在每个目录中,我都有两个文件“ p”和“ U”。 如何在所有目录中这些文件的开头添加一行?

谢谢。

如果我正确理解:

for i in `find . -name "[pU]" ` ; do echo "some string 3" > $i.new ; cat < $i >> $i.new ; mv -f $i.new $i; done

[0-9]*/[pU] -与文件0/p, 0/U, 0.1/p, 0.1/U等相同

sed -i '1s/^/newlineContent\n/' [0-9]*/[pU]

如果我基本上理解正确,则需要这样做:

1)将文件和文件夹放入单独的数组中(取决于您将在“ if” /“ else”流中指定的条件)。

因此,对于文件:files =(〜/ $ j1 / $ 2 / temp1 / *)

2)for循环遍历数组和touch / mv文件或您需要完成的其他任何操作,如下所示:

对于$ {files [@]}中的i;
触摸$ 1_yourTextOrValFromFunction

要么

cat〜/ $ 1 / $ 2 / temp1 / * _ temp> 1_yourTextOrValFromFunction

done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM