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

时间:2017-02-01 18:51:53

标签: linux bash shell sed

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

我有100个目录,它们的名称是根据它们的写入时间,例如0,0.01,0.02,0.05等。在这些目录中,我有两个文件" p"和" U"。如何在所有目录中的这些文件的开头添加一行?

感谢。

3 个答案:

答案 0 :(得分:1)

如果我理解正确:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

如果我理解正确,你需要这样做:

1)将文件和文件夹放入单独的数组中(取决于您将使用&#34指定的条件;如果&#34; /&#34;否则&#34;流程。

所以,对于文件:         文件=(〜/ $ J1 / $ 2 / temp1目录/ *)

2)for循环数组和touch / mv文件或其他你需要做的事情 那样的话:

for $ in $ {files [@]};
    做         触摸$ 1_yourTextOrValFromFunction

cat~ / $ 1 / $ 2 / temp1 / * _ temp&gt; 1_yourTextOrValFromFunction

done