将字符串写入大量文件

时间:2012-01-08 10:55:40

标签: linux shell unix terminal

我已经在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

3 个答案:

答案 0 :(得分:3)

从命令提示符(Bash)

for f in *.c; do echo "stackOverflow" >> $f; done

答案 1 :(得分:1)

一旦您的数据在数组中,就很容易循环,请参阅示例。

只需将其保存在空文件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 :(得分:1)

如果文件不为空(至少1个字节):

$ sed -i '1i\
stackOverflow' a{1..10}.c

会在每个文件的开头插入stackOverflow