shad-go/wordcount/README.md

72 lines
1.9 KiB
Markdown
Raw Normal View History

2020-02-12 22:25:12 +00:00
## wordcount
В этой задаче нужно написать консольную утилиту, которая принимает на вход набор файлов
и печатает в stdout уникальные строки и количество раз, которое они встречаются.
В stdout попадают только те строки, что встречаются суммарно хотя бы дважды.
Формат вывода:
```
<COUNT>\t<LINE>
<COUNT>\t<LINE>
2020-02-12 22:25:12 +00:00
...
```
#### Пример:
Если 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`.
### Линтер
Установите [golangci-lint](https://github.com/golangci/golangci-lint) и проверьте решение перед отправкой!
```
golangci-lint -v run ./wordcount/...
```
2020-02-12 22:25:12 +00:00
### 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