如何创建77个文件,其内容是每个文件的名称?

时间:2009-05-01 02:30:39

标签: linux file

我们举一个例子。 “file1”文件具有内容“file1”,它自己的名称。 “file2”文件的内容为“file2”,也是其自己的名称。该模式一直持续到我们覆盖77个文件为止。这77个文件最简单的方法是什么?

由于我在编译方面往往很难,所以我总结了一些细节。

介绍如何编译代码

PERMISSIONS:“chmod 700 filename.some_ending”

RUNNING:“../ filename.some_ending”

如何编译?

  1. 将gcc用于C ++ / C,如“gcc filename.c”,然后运行“./a.out”
  2. 像javac filename.javac一样使用javac for Java,然后用“java class”运行它(错误?!)
  3. 的Fortran?
  4. ...更多?

12 个答案:

答案 0 :(得分:19)

#!/bin/bash
for i in {1..77}
do
   echo file$i > file$i
done

答案 1 :(得分:6)

的Python:

for i in range(1,78): open("file" + str(i), "w").write("file" + str(i))

答案 2 :(得分:4)

C ++:

#include <sstream>
#include <fstream>

using namespace std;

int main()
{
     for (int i = 1; i <= 77; i++) {
          stringstream s;
          s << "file" << i;
          ofstream out(s.str().c_str());
          out << s.str();
          out.close();
     }
     return 0;
}

答案 3 :(得分:4)

C:

#include <stdio.h>

int main() {
    char buffer[8];
    FILE* f;
    int i;
    for(i = 1; i <= 77; i++){
        sprintf(buffer, "file%d", i);
        if((f = fopen(buffer, "w")) != NULL){
            fputs(buffer, f);
            fclose(f);
        }
    }
    return 0;
}

答案 4 :(得分:3)

Java版,为了好玩。

import java.io.*;

public class HA {
    public static void main(String[] args) throws Exception {
        String file = "file";
        for (int i = 1; i <= 77; i++){
            PrintStream out = new PrintStream(new File(file + i));
            out.print(file + i);
            out.close();
        }
    }
}

答案 5 :(得分:3)

的Perl:

#!/usr/bin/env perl
for ( my $i = 1; $i <= 77; ++$i )
{
    open( my $fh, '>', 'file' . $i );
    print { $fh } ( 'file' . $i );
    close( $fh );
}

答案 6 :(得分:3)

我添加了扩展名,假设文件已经存在。

的Fortran:

character(11) file_name
do i=1,77
  write(file_name,"('file',i2.2,'.txt')")i
  open(unit=1, file=file_name, status='replace')
  write(1,"(a)")file_name
  close(unit=1)
enddo
end

答案 7 :(得分:2)

Python版本适合那些喜欢可读性的人:

filenames = ("file%(num)d" % vars() for num in range(1, 78))
for filename in filenames:
    open(filename, 'w').write(filename)

答案 8 :(得分:1)

C#,为什么不:

using System.IO;

namespace FileCreator
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 1; i <= 77; i++)
            {
                TextWriter f = new StreamWriter("file" + i);
                f.Write("file" + i);
                f.Close();
            }
        }
    }
}

答案 9 :(得分:1)

红宝石:

77.times { |i| File.open("file#{i+1}", "w") { |f| f.puts "file#{i+1}" } }

答案 10 :(得分:1)

Delphi / Free Pascal

program Create77Files;

{$APPTYPE CONSOLE}

uses
  Classes, SysUtils;

var
  I: Integer;
  S: string;
begin
  for I := 1 to 77 do
  begin
    S:= 'file' + IntToStr(I);
    with TStringStream.Create(S) do
    begin
      SaveToFile(S);
      Free;
    end;
  end;
end.

答案 11 :(得分:0)

Groovy的:

77.times{n->n++;new File('file'+n).withWriter{it.writeLine('file'+n)}}