How do I generate empty files, with names randomly taken from an input text file?
up vote
-2
down vote
favorite
I would like to generate 20 files (empty), each named using a 10 character string chosen randomly from a file "test.txt"(manually generate the file test.txt).
How to do this task?
bash
New contributor
add a comment |
up vote
-2
down vote
favorite
I would like to generate 20 files (empty), each named using a 10 character string chosen randomly from a file "test.txt"(manually generate the file test.txt).
How to do this task?
bash
New contributor
5
We don't do your homework ... you have to figure that out your self. Or at least show what you have tried, and how it worked / failed.
– Soren A
Nov 21 at 9:52
3
We are not here to do your homework for you – what did you try and where do you have problems? Please edit to add further information.
– dessert
Nov 21 at 9:53
add a comment |
up vote
-2
down vote
favorite
up vote
-2
down vote
favorite
I would like to generate 20 files (empty), each named using a 10 character string chosen randomly from a file "test.txt"(manually generate the file test.txt).
How to do this task?
bash
New contributor
I would like to generate 20 files (empty), each named using a 10 character string chosen randomly from a file "test.txt"(manually generate the file test.txt).
How to do this task?
bash
bash
New contributor
New contributor
edited Nov 21 at 14:18
abu_bua
3,05381023
3,05381023
New contributor
asked Nov 21 at 9:46
Zarvis
61
61
New contributor
New contributor
5
We don't do your homework ... you have to figure that out your self. Or at least show what you have tried, and how it worked / failed.
– Soren A
Nov 21 at 9:52
3
We are not here to do your homework for you – what did you try and where do you have problems? Please edit to add further information.
– dessert
Nov 21 at 9:53
add a comment |
5
We don't do your homework ... you have to figure that out your self. Or at least show what you have tried, and how it worked / failed.
– Soren A
Nov 21 at 9:52
3
We are not here to do your homework for you – what did you try and where do you have problems? Please edit to add further information.
– dessert
Nov 21 at 9:53
5
5
We don't do your homework ... you have to figure that out your self. Or at least show what you have tried, and how it worked / failed.
– Soren A
Nov 21 at 9:52
We don't do your homework ... you have to figure that out your self. Or at least show what you have tried, and how it worked / failed.
– Soren A
Nov 21 at 9:52
3
3
We are not here to do your homework for you – what did you try and where do you have problems? Please edit to add further information.
– dessert
Nov 21 at 9:53
We are not here to do your homework for you – what did you try and where do you have problems? Please edit to add further information.
– dessert
Nov 21 at 9:53
add a comment |
2 Answers
2
active
oldest
votes
up vote
2
down vote
Assuming you already have the strings in test.txt
, and they are all 10 characters wide, and they are one per line:
shuf -n 20 test.txt | xargs touch
shuf
will shuffle the contents of test.txt
and print the first 20 lines, then xargs
will take that output and convert it to arguments for touch
, which will create files using those arguments.
New contributor
add a comment |
up vote
2
down vote
Using just the bash, without any external commands:
mapfile names < test.txt # save filenames in array
for ((i = 0; i < 20; i++)) # loop 20 times
do
ind=$((RANDOM % ${#names[@]})) # take random value less than length of array
> "${names[$ind]}" # redirection creates empty file
unset names[$ind] # remove used filename from array
names=( "${names[@]}" ) # recreate array to remove gaps
done
New contributor
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
Assuming you already have the strings in test.txt
, and they are all 10 characters wide, and they are one per line:
shuf -n 20 test.txt | xargs touch
shuf
will shuffle the contents of test.txt
and print the first 20 lines, then xargs
will take that output and convert it to arguments for touch
, which will create files using those arguments.
New contributor
add a comment |
up vote
2
down vote
Assuming you already have the strings in test.txt
, and they are all 10 characters wide, and they are one per line:
shuf -n 20 test.txt | xargs touch
shuf
will shuffle the contents of test.txt
and print the first 20 lines, then xargs
will take that output and convert it to arguments for touch
, which will create files using those arguments.
New contributor
add a comment |
up vote
2
down vote
up vote
2
down vote
Assuming you already have the strings in test.txt
, and they are all 10 characters wide, and they are one per line:
shuf -n 20 test.txt | xargs touch
shuf
will shuffle the contents of test.txt
and print the first 20 lines, then xargs
will take that output and convert it to arguments for touch
, which will create files using those arguments.
New contributor
Assuming you already have the strings in test.txt
, and they are all 10 characters wide, and they are one per line:
shuf -n 20 test.txt | xargs touch
shuf
will shuffle the contents of test.txt
and print the first 20 lines, then xargs
will take that output and convert it to arguments for touch
, which will create files using those arguments.
New contributor
New contributor
answered Nov 21 at 13:38
JohnDoea
1
1
New contributor
New contributor
add a comment |
add a comment |
up vote
2
down vote
Using just the bash, without any external commands:
mapfile names < test.txt # save filenames in array
for ((i = 0; i < 20; i++)) # loop 20 times
do
ind=$((RANDOM % ${#names[@]})) # take random value less than length of array
> "${names[$ind]}" # redirection creates empty file
unset names[$ind] # remove used filename from array
names=( "${names[@]}" ) # recreate array to remove gaps
done
New contributor
add a comment |
up vote
2
down vote
Using just the bash, without any external commands:
mapfile names < test.txt # save filenames in array
for ((i = 0; i < 20; i++)) # loop 20 times
do
ind=$((RANDOM % ${#names[@]})) # take random value less than length of array
> "${names[$ind]}" # redirection creates empty file
unset names[$ind] # remove used filename from array
names=( "${names[@]}" ) # recreate array to remove gaps
done
New contributor
add a comment |
up vote
2
down vote
up vote
2
down vote
Using just the bash, without any external commands:
mapfile names < test.txt # save filenames in array
for ((i = 0; i < 20; i++)) # loop 20 times
do
ind=$((RANDOM % ${#names[@]})) # take random value less than length of array
> "${names[$ind]}" # redirection creates empty file
unset names[$ind] # remove used filename from array
names=( "${names[@]}" ) # recreate array to remove gaps
done
New contributor
Using just the bash, without any external commands:
mapfile names < test.txt # save filenames in array
for ((i = 0; i < 20; i++)) # loop 20 times
do
ind=$((RANDOM % ${#names[@]})) # take random value less than length of array
> "${names[$ind]}" # redirection creates empty file
unset names[$ind] # remove used filename from array
names=( "${names[@]}" ) # recreate array to remove gaps
done
New contributor
New contributor
answered Nov 21 at 14:59
Bash bros
1
1
New contributor
New contributor
add a comment |
add a comment |
Zarvis is a new contributor. Be nice, and check out our Code of Conduct.
Zarvis is a new contributor. Be nice, and check out our Code of Conduct.
Zarvis is a new contributor. Be nice, and check out our Code of Conduct.
Zarvis is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1094745%2fhow-do-i-generate-empty-files-with-names-randomly-taken-from-an-input-text-file%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
5
We don't do your homework ... you have to figure that out your self. Or at least show what you have tried, and how it worked / failed.
– Soren A
Nov 21 at 9:52
3
We are not here to do your homework for you – what did you try and where do you have problems? Please edit to add further information.
– dessert
Nov 21 at 9:53