Почему эта сортировка игнорирует префикс +/-?

Recorra todos los archivos paired1.fqy, para cada archivo, use el nombre para calcular el nombre del archivo paired2.fqcorrespondiente. Luego llame a su programa con estos:

for paired1 in data/*paired1.fq; do
    paired2="${paired1%1.fq}2.fq"  # remove 1.fq from end of name and replace with 2.fq

    if [ ! -f "$paired2" ]; then
        printf 'Missing file:\t%s\n' "$paired2" >&2
        continue
    fi

    prefix="${paired1%_*}" # remove last underscore and everything after
    prefix="${prefix##*/}" # remove directory name from prefix

    # If $paired1 is the string "data/24538_7#1_paired1.fq", then
    # $prefix should now be "24538_7#1"

    mkdir -p "results/STAR/$prefix"

    STAR --runThreadN 12 --genomeDir indices/STAR --twopassMode Basic \
         --readFilesIn "$paired1" "$paired2" \
         --outFileNamePrefix "results/STAR/$prefix/"
done
1
30.11.2016, 02:36
1 ответ

Как упоминалось в Почему при сортировке ls игнорируются не буквенно-цифровые символы? , сортировка по умолчанию - UTF8, а UTF8 учитывает +/- эквивалент .

Установив LC_COLLATE = C для сортировки, вы можете получить порядок сортировки ascii:

curl -s https://lists.fedorahosted.org/archives/list/sssd-devel@lists.fedorahosted.org/message/ZN6VMFN65JWV7NMG2XEHPUI2AGSLRNGW/attachment/2/0001-LDAP-Change-the-default-rfc2307-autofs-attribute-map.patch | \
grep '^[+-] *{ "' | LC_COLLATE=C sort
3
27.01.2020, 23:25

Теги

Похожие вопросы