Просто используйте вид и uniq:
sort mylist.txt | uniq | wc -l
Это даст Вам количество уникальных значений. Для получения количества случаев каждого уникального значения использовать uniq
опция-c:
sort mylist.txt | uniq -c
От uniq
страница справочника:
-c, --count
prefix lines by the number of occurrences
Кроме того, для дальнейшего использования, grep
опция-c часто полезна:
-c, --count
Suppress normal output; instead print a count of
matching lines for each input file. With the -v,
--invert-match option (see below), count non-matching
lines. (-c is specified by POSIX.)
Попытайтесь перенести URL к axel
в одинарных кавычках. Bash пытается проанализировать &
в аргументах параметрического усилителя в URL как Вы говорящий это фону команда.
$ axel 'https://eusa.example.com/zipstream/1581777.zip?tunnel=1&token=b7385bb62e3111e3ace1002481265109&storage=s09'
При прохождении через списка открытых ошибок для Axel, на которого это похоже, эта проблема была определена ранее, и автор, кажется, не отвечает на проблему.
Дополнительную информацию см. в этих проблемах:
Учитывая отрезок времени это передается без перемещения по этим проблемам, я рассмотрел бы этого мертвого проекта. Это может все еще быть применимо, но нет никакого управления им.
Это не настолько необычно в мире с открытым исходным кодом и на самом деле, что делает эту модель лицензирования уникальной, в том смысле, что можно взять исходный код, на проекте в этом состоянии, и все еще продолжить использовать ее и поддерживать ее сами.
Исходный код для этого проекта легко загружаем через svn
. Код проекта repo:
Можно загрузить копию репозитория как так:
$ svn co svn://svn.debian.org/svn/axel/
На моем поле Fedora 19 код настраивает и компилирует отлично, таким образом, этот проект находится на самом деле в хорошем состоянии, если нужно было принять решение изменить кодовую базу.
настроить
$ ./configure
Configuration done:
Internationalization enabled.
Debugging disabled.
Binary stripping enabled.
сделать
$ make
msgfmt -vo nl.mo nl.po
40 translated messages, 6 fuzzy translations, 4 untranslated messages.
msgfmt -vo de.mo de.po
46 translated messages, 4 fuzzy translations.
msgfmt -vo ru.mo ru.po
46 translated messages, 2 fuzzy translations, 2 untranslated messages.
msgfmt -vo zh_CN.mo zh_CN.po
42 translated messages, 6 fuzzy translations, 2 untranslated messages.
gcc -c axel.c -o axel.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall
gcc -c conf.c -o conf.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall
gcc -c conn.c -o conn.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall
gcc -c ftp.c -o ftp.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall
gcc -c http.c -o http.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall
gcc -c search.c -o search.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall
gcc -c tcp.c -o tcp.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall
gcc -c text.c -o text.o -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Wall
gcc *.o -o axel -pthread
strip axel
Я смог скомпилировать его и получил совершенно применимый двоичный файл axel
.
$ ls -l | grep "axel$"
-rwxrwxr-x. 1 saml saml 35816 Dec 14 21:56 axel
Раздел кода, что я полагаю, что Вы хотели бы сфокусироваться на, будет здесь в файле conn.c
:
conn_exec( conn );
conn_disconnect( conn );
/* Code 3xx == redirect */
if( conn->http->status / 100 != 3 )
break;
if( ( t = http_header( conn->http, "location:" ) ) == NULL )
return( 0 );
sscanf( t, "%255s", s );
if( strstr( s, "://" ) == NULL)
{
sprintf( conn->http->headers, "%s%s",
conn_url( conn ), s );
strncpy( s, conn->http->headers, MAX_STRING );
}
C/C++ не является моим собственным "языком", таким образом, я должен был бы начать любым прокручиванием этого кода gdb
(иначе. Отладчик GNU), или вводят некоторых printf
операторы вокруг этого раздела для наблюдения, что продолжается когда axel
получает доступ к URL, с которыми у Вас есть проблема.