54

New to scripting. How can I write code to create multiple files (a.txt, b.txt, ... , z.txt)?

Thanks.

1
  • 1
    Do you want to put anything in those files? Commented Nov 10, 2010 at 3:41

8 Answers 8

133

One command to create 26 empty files:

touch {a..z}.txt

or 152:

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

A small loop to create 152 files with some contents:

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

You can do numbered files with leading zeros:

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

or, in Bash 4:

for i in {000..100}
do
    echo hello > "File${i}.txt"
done
Sign up to request clarification or add additional context in comments.

Comments

9
for i in {1..200}; do touch any_prefix_here${i}; done

where i is the count. So example files are employee1 employee2 etc... through to emplyee200

Comments

4

To create files with names a.txt and b.txt simple pass names to touch

touch a.txt b.txt

2 Comments

This ... is not arbitrary? ;)
Make sense to fix description :)
3
echo Hello > a.txt
echo World > b.txt

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

If you want more useful examples, ask a more useful question...

1 Comment

Not everyone is a bash (or shell) expert. It is so easy to do everything with executables it can be easy to forget about built-in flow control tools.
2

You can create a file using $ cat > a.txt. If you need to have a file with specific content, type $ echo content > filename.

Comments

1

to have some content in file use dd

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

Comments

1

Instead of using filenames a..z i prefer using numbers.

create a script like this (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

To execute it (create 100 files for example)

./createNfiles.sh 100

Comments

1

tl;dr:

echo CONTENT | tee PATH…

I had to address the content issue to create minimal valid Nix files, which can't be empty:

$ 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
{}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.