How do I generate empty files, with names randomly taken from an input text file?

Multi tool use
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
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited Nov 21 at 14:18


abu_bua
3,05381023
3,05381023
New contributor
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked Nov 21 at 9:46
Zarvis
61
61
New contributor
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Zarvis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
answered Nov 21 at 13:38
JohnDoea
1
1
New contributor
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
JohnDoea is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
answered Nov 21 at 14:59
Bash bros
1
1
New contributor
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Bash bros is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
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
sgyxTWWJ,xiv,ZH3n2hwHBCLj5aFgiohOX,9Y3rAdfb,l4,t7vZOOnplX8oHuoT 016wemX0QW
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