Отрегулируйте переменные по желанию. Сохраните это в файл, например `/home/Amanda/script.sh
#!/bin/sh
infile=~/input.txt
outfile=~/output.txt
while read one two; do
printf "%s %s\n" "${one}" "$( echo "${two}" | tr 'ABCG' '1234' )"
done < ${infile} > ${outfile}
Обязательно сделайте скрипт исполняемым: chmod +x /home/Amanda/script.sh
Обычный способ перемешать список - это перебрать элементы и поменять местами на другой элемент в случайном порядке.
#! /bin/bash -
list=(1 2 3 4 5 6 7 8 9 0)
random_list=("${list[@]}")
n=${#random_list[@]}
for ((i = 0; i < n; i++)); do
(( r = RANDOM % n ))
tmp=${random_list[i]}
random_list[i]=${random_list[r]}
random_list[r]=$tmp
done
printf '%s\n' "${random_list[@]}" > generated.txt
Сказав это, FreeBSD sort
имеет параметр -R
для случайной сортировки, я был бы удивлен, если бы сортировка в OS / X этого не сделала, поэтому вы должны иметь возможность do (при условии, что элементы массива не содержат символов новой строки):
printf '%s\n' "${list[@]}" | sort -R > generated.txt