Примите значение другого столбца, если столбец запроса между двумя значениями столбцов

, а не тестирование для действительного исполняемого исполняемого исполняемого файла, возможно, лучше всего тестировать то, что такое текущая архитектура, затем выберите правильный исполняемый файл на основе этого. Например:

if [ $(uname -m) == 'armv6l' ]; then
    tool-rpi
else
    tool-osx
fi

Тем не менее, если тестирование исполняемого файла - это то, что вы действительно , хотите сделать, GNU файл может сообщить вам архитектуру исполняемого файла:

user@host:~$ file $(whereis cat)
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x4e89fd8f129f0a508afa325b0f0f703fde610971, stripped

-121-----97785-

  1. Ваша оценка правильная. С точки зрения чистых номеров, накладные расходы замедляются на использование
  2. ARIA2C . ARIA2C открывает множество параллельных подключений к FTP-серверу для загрузки набора файлов быстрее. Просто убедитесь, что ваш сервер поддерживает несколько одновременного соединения с одного и того же хоста

, если у вас есть доступ на ваш хост (в этом случае, я бы предположил, что вы входите в систему анонимно и не имеете доступа к записи) Zip / Tar Файлы перед загрузкой

0
16.12.2014, 00:37
2 ответа

Предполагая, что заработная плата и зарплатные границы всегда будут целыми числами, и что диапазоны зарплаты не перекрывают, вот-то, что может работать (в Bash )

{ printf "indi Rank\n" ; 
join -o1.1,2.2 <(tail -n +2 file1 | sort -b -k2,2) -1 2 -2 1 \
<(awk 'FNR > 1{for (i=$1; i<$2; ++i) printf "%d %s\n", i, $3}' file2 | sort -k1,1) ;}
indi Rank
sam Deputy
john Assistant
max Manager
1
28.01.2020, 02:51

Я бы не рекомендовал его на огромную кусок данных, но я думал, что попробую раствор Bash. Я не очень bash-беглый , но это похоже на «очевидный» способ обработки вещей, «алгоритмически говоря». Это в основном илет на каждый файл и ищет хорошего диапазона. Я дал некоторые детали в комментариях.

Сценарий должен быть выполнен таким образом:

$ ./script.sh [salaries] [ranges]

файл файл содержит зарплату Сэма, Джона и Макса, а диапазоны содержит ваши диапазоны и ранги (от 2000 до 4000 - заместитель , От 4000 до 6000 - секретарь, и так далее).

#!/bin/bash

test $# -ne 2 && exit 1
test ! -r "$1" -o ! -r "$2" && exit 2

# Open the salary file (3) and the ranges (4).
exec 3< "$1"
exec 4< "$2"

# Echo the salary headers.
read -d$'\n' headers <&3
echo "$headers" | tr -s ' '

# For each line in the salary file...
while read name salary; do
    # Skip the ranges headers ("salary_min...").
    read -d$'\n' skip <&4

    # For each range...
    while read min max rankname; do
    # If the salary is within the range, print name and rank.
    if [ "$salary" -ge $min -a "$salary" -lt $max ]; then
        echo "$name $rankname"
    fi
    done <&4

    # Reopen the range file for the next employee.
    exec 4>&-
    exec 4< "$2"
done <&3

exit 0

Обратите внимание, что мои проверки диапазона включены на нижней границе, но исключительно на более высоком:

[ "$salary" -ge $min -a "$salary" -lt $max ]

Вы можете изменить эту строку, если это не ожидаемое поведение. Я также пытался открыть файлы как можно редко, но поскольку Bash не обрабатывает , ищущий файл , мне все равно нужно регулярно закрывать / открывать файл диапазона. Если честно, я бы порекомендовал немного реализации более низкого уровня, если вы должны иметь дело с очень большими файлами. C было бы хорошо.

0
28.01.2020, 02:51

Теги

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