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
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
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
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
edited Nov 21 at 14:18
abu_bua
3,06081023
3,06081023
asked Nov 21 at 9:46
Zarvis
61
61
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.
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
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.
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.
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.
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.
answered Nov 21 at 13:38
JohnDoea
1
1
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
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
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
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
answered Nov 21 at 14:59
Bash bros
1
1
add a comment |
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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