【问题标题】:Creating multiple files with content from shell使用 shell 内容创建多个文件
【发布时间】:2011-05-07 15:36:40
【问题描述】:

脚本新手。如何编写代码来创建多个文件(a.txt、b.txt、...、z.txt)?

谢谢。

【问题讨论】:

  • 你想在这些文件中放什么吗?

标签: bash unix scripting


【解决方案1】:
echo Hello > a.txt
echo World > b.txt

for i in a b c d e f g; do
    echo $i > $i.txt
done

如果您想要更多有用的示例,请提出更有用的问题...

【讨论】:

  • 不是每个人都是 bash(或 shell)专家。使用可执行文件做任何事情都非常容易,以至于很容易忘记内置的流控制工具。
【解决方案2】:

您可以使用$ cat > a.txt 创建文件。如果您需要具有特定内容的文件,请输入$ echo content > filename

【讨论】:

    【解决方案3】:

    一个命令创建26个空文件:

    touch {a..z}.txt
    

    或 152:

    touch {{a..z},{A..Z},{0..99}}.txt
    

    创建 152 个包含一些内容的文件的小循环:

    for f in {a..z} {A..Z} {0..99}
    do
        echo hello > "$f.txt"
    done
    

    您可以使用前导零对文件进行编号:

    for i in {0..100}
    do
        echo hello > "File$(printf "%03d" "$i").txt"
    done
    

    或者,在 Bash 4 中:

    for i in {000..100}
    do
        echo hello > "File${i}.txt"
    done
    

    【讨论】:

      【解决方案4】:
      for i in {1..200}; do touch any_prefix_here${i}; done
      

      其中 i 是计数。所以示例文件是员工1员工2等...一直到员工200

      【讨论】:

        【解决方案5】:

        要在文件中包含一些内容,请使用 dd

        for i in {1..N};
        do
        dd if=/dev/urandom of=./path/file${i} bs=1M count=1;
        done
        

        【讨论】:

          【解决方案6】:

          要创建名称为a.txtb.txt 的文件,只需将名称传递给touch

          touch a.txt b.txt
          

          【讨论】:

          • 这……不是随意的吗? ;)
          • 修复描述是有意义的:)
          【解决方案7】:

          我更喜欢使用数字而不是使用文件名 a..z。

          创建这样的脚本 (createNfiles.sh)

          #!/bin/bash
          
          if [ "$1" = "" ]; then
            echo "Usage: $0 <number of files to create>"
            exit 1
          fi
          
          now=`date '+%Y-%m-%d_%H%M%S'`
          prefix="${now}_myFilePrefix"
          echo "creating $1 files"
          echo "now=$now"
          
          for i in $(seq 1 $1); do file="${prefix}_${i}.log"; echo "creating $file"; touch $file; done
          

          执行它(例如创建 100 个文件)

          ./createNfiles.sh 100

          【讨论】:

            【解决方案8】:

            tl;博士:

            echo CONTENT | tee PATH…
            

            我必须将内容问题发送至create minimal valid Nix files,该地址不能为空:

            $ docker run --interactive --rm --tty --volume="${HOME}/dev/root:/etc/nixos" nixos/nix
            […:/# cd /etc/nixos
            […]:/etc/nixos# echo {} | tee common.nix hardware-configuration.nix host.nix
            {}
            […]:/etc/nixos# cat common.nix
            {}
            […]:/etc/nixos# cat hardware-configuration.nix
            {}
            […]:/etc/nixos# cat host.nix
            {}
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-11-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多