将字符串写入大量文件
我已经在仅具有这些创建文件的目录中的linux终端上使用touch命令创建了10个文件。将字符串写入大量文件
$ touch a1.c a2.c a3.c a4.c a5.c a6.c a7.c a8.c a9.c a10.c
我想写一个字符串“stackOverflow”(比如说)一次写入所有这些文件。 如何做到这一点?是否有任何命令或其他方式?
平台-ubuntu 10.04
在命令提示(击)
for f in *.c; do echo "stackOverflow" >> $f; done
如果我想将所有这些文件中的其他文件的内容? 。例如。我有一个文件中的标准头,我想写在所有这些文件 – 2012-01-08 12:03:41
一旦数据是在阵列中很容易遍历,见例子。
只需将其保存在一个空文件writeStringToFiles.sh中并右键单击它,然后在权限选项卡下单击允许执行文件作为程序。您可以双击它,或者通过“cd”将其从终端运行到其目录中,然后只需键入“./writeStringToFiles.sh”。你可以像这样在bash脚本中放入你想要的任何命令。
#!/bin/sh
files=(a1.c a2.c a3.c a4.c a5.c a6.c a7.c a8.c a9.c a10.c)
thingToWrite='stackOverflow'
for i in "${files[@]}"
do :
touch $i
echo -e $thingToWrite >> $i
done
exit
2行:语法错误:“(”意想不到 – 2012-01-08 11:27:06
它为我工作,我刚刚编辑它,并删除半圆分裂,看看它现在是否适用于你,只是复制粘贴到gedit或纳米 – imp 2012-01-08 11:35:38
@imp ---同样的错误.. – 2012-01-08 11:57:26
如果文件不是空的(至少1个字节):
$ sed -i '1i\
stackOverflow' a{1..10}.c
将在每个文件的开头插入stackOverflow
。
写一个字符串==只有这个字符串?附加? – fge 2012-01-08 10:57:51
这些都是空文件 – 2012-01-08 11:00:29
这看起来更像是一种编程语言作业,而不是我的命令行作业......您可以创建并行线程来执行此类作业。但真正的问题是:你为什么这样做?什么同步?从这个角度来看,应该使用其他方法... – Beachwalker 2012-01-08 11:02:07