Linux在多个文件上写一些东西

时间:2009-01-02 11:40:01

标签: linux debian

我有一个文件“atest.txt”有一些文字..

我想在文件“asdasd.txt asgfaya.txt asdjfusfdgh.txt asyeiuyhavujh.txt”中打印此文本

我的服务器上不存在此文件..

我正在运行Debian ..我该怎么办?

5 个答案:

答案 0 :(得分:6)

使用 tee (1)命令,该命令将其标准输入复制到标准输出和命令行上指定的任何文件。 E.g。

printf "Hello\nthis is a test\nthank you\n"
  | tee test1.txt test2.txt $OTHER_FILES >/dev/null

使用您的示例:

cat atest.txt
  | tee asdasd.txt asgfaya.txt asdjfusfdgh.txt asyeiuyhavujh.txt >/dev/null

答案 1 :(得分:1)

在bash中你可以写

#!/bin/bash
$TEXT="hello\nthis is a test\nthank you"
for i in `seq 1 $1`; do echo -e $TEXT >text$i.txt; done

编辑(回答问题更改)

如果无法以编程方式确定目标文件的名称,则可以使用此脚本:

#!/bin/bash
ORIGIN=$1;
shift
for i in `seq $#`; do cp "$ORIGIN" "$1"; shift; done

你可以这样使用它:
script_name origin_file dest_file1 second_dest_file'第三个文件'...

如果你想知道为什么cp命令中有双引号,它是为了处理包含空格的文件名

答案 2 :(得分:1)

从bash提示符开始:

for f in test1.txt test2.txt test3.txt; do echo -e "hello\nworld" >> $f; done

如果文本位于atest.txt中,则执行:

for f in test1.txt test2.txt test3.txt; do cat atest.txt >> $f; done

答案 3 :(得分:1)

不是简单的:

cp atest.txt asdasd.txt 
cp atest.txt asgfaya.txt
cp atest.txt asdjfusfdgh.txt
cp atest.txt asyeiuyhavujh.txt

答案 4 :(得分:0)

如果有人想向dir中的所有文件写入相同内容:

printf 'your_text' | tee *