我正在编写一个bash脚本,作为其中的一部分,我需要执行以下操作:
我有100个目录,它们的名称是根据它们的写入时间,例如0,0.01,0.02,0.05等。在这些目录中,我有两个文件" p"和" U"。如何在所有目录中的这些文件的开头添加一行?
感谢。
答案 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