7

我正在尝试从终端在我的 macbook 上生成一个随机文本文件。我正在尝试的是:

tr -dc A-Za-z0-9 < /dev/urandom | head -c100 > RandomFile.txt

但我得到

tr:非法字节序列

我究竟做错了什么?

4

2 回答 2

7

设置这个环境变量,你应该很高兴:

setenv LC_ALL C

我在此页面上找到的答案

有了这个环境变量,我看到了一个格式很好的输出:

tr -dc A-Za-z0-9 < /dev/urandom | head -c100
Kk4kfjR3O0UraMpfTGicGvYCziFClJQUTO3zCXdo05RTxEUigqPXTkjtiGOsTsaNyqNR3rX2dsmPlHkSdqO5qWBTmIFIYezsekWT[~]:;
于 2012-11-24T13:48:10.900 回答
2
# Print or assign a random alphanumeric string of a given length.
# rndstr len [ var ]
function rndstr {
    if [[ $FUNCNAME == "${FUNCNAME[1]}" ]]; then
        unset -v a
        printf "$@"
    elif [[ $1 != +([[:digit:]]) ]]; then
        return 1
    elif (( ! $1 )); then
        return
    else
        typeset -a a=({a..z} {A..Z} {0..9})
        eval '${2:+"$FUNCNAME" -v} "${2:-printf}" -- %s "${a[RANDOM%'"${#a[@]}"']"{1..'"$1"'}"}"'
    fi
}

rndstr 100

这是我的库函数。优点是性能和直接分配给变量的能力。可能对你来说太过分了。

于 2012-11-24T14:33:23.937 回答