Создать файл из цикла - PullRequest
0 голосов
/ 23 мая 2019

Как написать сценарий, который создаст файл с именем post-data.txt, который будет содержать 3000 записей данных json следующим образом:

{"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+1@domain.com"}
{"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+2@domain.com"}
{"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+3@domain.com"}
...
{"firstName":"random_string_of10_characters","lastName":"random_string_of10_characters","email":"test+3000@domain.com"}

Вот что я пробовал до сих пор

#!/bin/bash
file_location=/home/test/$1.json
if [ -e $policy ]; then
  echo "File $1.json already exists!"
else
  cat > $file_location <<EOF
{"firstName":"x","lastName":"y","email":"test@domain.com"}
EOF
fi

Я жестко закодировал текст, но я не знаю, как генерировать случайные строки и увеличивать адрес электронной почты :( Спасибо.

1 Ответ

1 голос
/ 23 мая 2019

Вы можете сделать это с помощью следующего скрипта:

#!/bin/bash

file=post_data.json

name() {
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1
}

exec > "$file"
echo "{"

for i in {1..3000}; do
    echo "{\"firstName\": \"$(name)\", \"lastName\": \"$(name)\", \"email\": \"test+${i}@domain.com\"},"
done

echo "}"

Вот содержимое файла:

{
{"firstName": "R0b24KRMCX", "lastName": "H4RpNLUMM0", "email": "test+1@domain.com"},
{"firstName": "WcThrrFUht", "lastName": "zEgMb2mMva", "email": "test+2@domain.com"},
{"firstName": "3NBRZPOeT0", "lastName": "fvuNtmhh7x", "email": "test+3@domain.com"},
...
{"firstName": "I8QD9sr8ke", "lastName": "Inbb4cUKqQ", "email": "test+3000@domain.com"},
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...