2016-08-31 39 views
0

我想从一个缓冲区创建多个文件。是否有捷径可寻?因此,从从文本编辑器创建多个文件

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等,意在象征着更复杂的内容,我做的查找/文本编辑器来替换。我认为这是我正在寻找的文档。干杯

+2

您正在使用哪种文本编辑器? – Sundeep

+5

'后缀{1..3};请回显“无论”>>“foo $ {suffix} .txt”; done'? – fedorqui

回答

1

你可以写猫和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而不是路径到你的主目录。

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 
0

基于詹姆斯的回答以上,但稍微concise-

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 
0

你的问题的标题没有按”不符合问题本身,因为没有涉及文本编辑器,但也许您正在寻找HERE文档:

cat >foo1.txt <<EOT 
1a 
1b 
1c 
1d 
EOT 
+0

对不起,1a 1b等是为了象征内容,我正在使用文本编辑器来查找/替换等。我认为这是我正在寻找的文档,但是,谢谢! – user6778177

+0

在这种情况下,请选择接受的答案,以表明您不需要关于此主题的更多建议。 – user1934428