我想从一个缓冲区创建许多文件。是否有捷径可寻?所以从
开始foo1.txt
1a
1b
1c
1d
foo2.txt
2a
2b
2c
2d
foo3.txt
3a
3b
3c
3d
制作3个文件,名为foo 1 2和3 .txt,内容为。
有没有比这更糟糕的东西?
echo 1a > foo1.txt
echo 1b >> foo1.txt
echo 1c >> foo1.txt
echo 1d >> foo1.txt
编辑:抱歉,1a,1b等是为了象征我在文本编辑器中查找/替换的更复杂的内容。我认为HERE docs就是我想要的。干杯
答案 0 :(得分:1)
喜欢这个?:
$ printf '1a\n1b\n1c\n1d\n' > foo1.txt
$ cat foo1.txt
1a
1b
1c
1d
或者也许:
for i in 1 2 3; do for j in a b c d ; do echo "$i""$j" >> foo"$i".txt ; done ; done
答案 1 :(得分:1)
您可以使用cat和heredocs编写多行文件:
cat > foo1.txt <<EOF
1a
1b
1c
1d
EOF
cat > foo2.txt <<EOF
2a
2b
2c
2d
EOF
cat > foo3.txt <<EOF
3a
3b
3c
3d
EOF
这将允许变量扩展,所以:
cat > test.txt <<EOF
$HOME
EOF
将生成包含主目录路径的文件。你可以通过以下方式来抑制它:
cat > test.txt <<"EOF"
$HOME
EOF
这将生成一个内容为$HOME
的文件,而不是您的主目录的路径。
答案 2 :(得分:0)
基于詹姆斯的答案,但稍微简洁一点 -
for i in {1..3} #Better if you have to do a lot of files
do
for j in {a..d} #Ditto as above comment
do
echo "$i""$j" >> foo"$i".txt
done
done
答案 3 :(得分:0)
您的问题标题与问题本身不符,因为没有涉及文本编辑器,但您可能正在寻找HERE文档:
cat >foo1.txt <<EOT
1a
1b
1c
1d
EOT