64 lines
1.7 KiB
Markdown
64 lines
1.7 KiB
Markdown
## wordcount
|
||
|
||
В этой задаче нужно написать консольную утилиту, которая принимает на вход набор файлов
|
||
и печатает в stdout уникальные строки и количество раз, которое они встречаются.
|
||
В stdout попадают только те строки, что встречаются суммарно хотя бы дважды.
|
||
|
||
Формат вывода:
|
||
```
|
||
<LINE>\t<COUNT>
|
||
<LINE>\t<COUNT>
|
||
...
|
||
```
|
||
|
||
#### Пример:
|
||
|
||
Если a.txt - это файл со следующим содержимым:
|
||
```
|
||
a
|
||
b
|
||
a
|
||
c
|
||
```
|
||
а b.txt - со следующим:
|
||
```
|
||
a
|
||
b
|
||
a
|
||
c
|
||
```
|
||
то результат выполнения команды `wordcount a.txt b.txt` должен выглядеть так (с точностью до перестановки строк):
|
||
```
|
||
2 c
|
||
4 a
|
||
2 b
|
||
```
|
||
|
||
### Проверка решения
|
||
|
||
Для запуска тестов нужно выполнить следующую команду:
|
||
|
||
```
|
||
go test -v ./wordcount/...
|
||
```
|
||
|
||
### Компиляция
|
||
|
||
```
|
||
go install ./wordcount/...
|
||
```
|
||
|
||
После выполнения в `$GOPATH/bin` появится исполняемый файл с именем `wordcount`.
|
||
|
||
### Walkthrough
|
||
|
||
#### 1. Чтение аргументов командной строки
|
||
https://gobyexample.com/command-line-arguments
|
||
#### 2. Чтение файлов
|
||
https://gobyexample.com/reading-files
|
||
#### 3. Парсинг содержимого
|
||
https://gobyexample.com/string-functions
|
||
#### 4. Подсчёт вхождений
|
||
https://gobyexample.com/maps
|
||
#### 5. Вывод результатов
|
||
https://gobyexample.com/string-formatting
|