diff --git a/Bash/copyFolder.sh b/Bash/copyFolder.sh new file mode 100755 index 0000000..d6bc845 --- /dev/null +++ b/Bash/copyFolder.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Get the list of directories in the current script directory +directories=($(find . -maxdepth 1 -type d ! -name .)) + +# Check if there is exactly one directory +if [ ${#directories[@]} -ne 1 ]; then + echo "Error: There should be exactly one folder in the current directory." + exit 1 +fi + +# Get the name of the single directory +folder_name=${directories[0]} + +random_string() { + local length=$1 + tr -dc 'a-zA-Z0-9!@#$%^&*()_+{}|:<>?~' < /dev/urandom | head -c $length +} + +# Number of copies to create (default 100) +num_copies=${1:-100} + +# Create the specified number of copies +for ((i=1; i<=num_copies; i++)); do + new_folder_name="$(random_string 255)" + cp -r "$folder_name" "$new_folder_name" + echo "Folder copied and renamed to '$new_folder_name'" +done \ No newline at end of file diff --git a/PYTHON/randomize_numbers/random_digits.py b/PYTHON/randomize_numbers/random_digits.py new file mode 100644 index 0000000..39147b0 --- /dev/null +++ b/PYTHON/randomize_numbers/random_digits.py @@ -0,0 +1,74 @@ +import random +import sys +import re + +def randomize_numbers(numbers, min_percentage=1, max_percentage=20): + randomized_numbers = [] + for number in numbers: + percentage = random.uniform(min_percentage, max_percentage) / 100 + if random.choice([True, False]): + new_number = number + (number * percentage) + else: + new_number = number - (number * percentage) + randomized_numbers.append(new_number) + return randomized_numbers + +def parse_input(input_string): + # Replace commas with dots and remove non-numeric characters except dots, commas, and digits + cleaned_input = re.sub(r'[^\d.,\s]', '', input_string).replace(',', '.') + # Split the cleaned input into individual numbers + number_strings = cleaned_input.split() + # Convert the number strings to floats + numbers = [] + decimal_counts = [] + for num in number_strings: + try: + float_num = float(num) + if '.' in num: + digits_count = len(num.split('.')[-1]) + else: + digits_count = 0 + numbers.append(float_num) + decimal_counts.append(digits_count) + except ValueError: + continue + return numbers, decimal_counts + +if __name__ == "__main__": + if len(sys.argv) < 2: + print("Usage: python random_digits.py ... [min_percentage max_percentage]") + sys.exit(1) + + try: + input_string = ' '.join(sys.argv[1:]) + numbers, decimal_counts = parse_input(input_string) + min_percentage = 1 + max_percentage = 20 + + if len(numbers) == 0: + raise ValueError("No valid numbers provided.") + + if len(sys.argv) > len(numbers) + 1: + try: + min_percentage = float(sys.argv[len(numbers) + 1]) + except ValueError: + pass + if len(sys.argv) > len(numbers) + 2: + try: + max_percentage = float(sys.argv[len(numbers) + 2]) + except ValueError: + pass + + randomized_numbers = randomize_numbers(numbers, min_percentage, max_percentage) + formatted_numbers = [] + for i, num in enumerate(randomized_numbers): + format_str = f'.{decimal_counts[i]}f' + formatted_numbers.append(float(format(num, format_str))) + + print("Original numbers:", numbers) + print("Randomized numbers:", formatted_numbers) + except ValueError as e: + print(f"Error: {e}") + print("Please provide valid numbers and percentages.") + sys.exit(1) +