Это классическая проблема, которая может быть решена с помощью команды uniq. uniq может обнаруживать повторяющиеся последовательные строки и удалять дубликаты (-u, --unique) или сохранять только дубликаты (-d, --repeated).
Поскольку порядок дублирования строк не важен для вы, вы должны отсортировать его в первую очередь. Затем используйте uniq для печати только уникальных строк:
sort yourfile.txt | uniq -u
Также имеется опция -c (--count), которая печатает количество дубликатов для параметра -d. Подробнее см. На странице руководства uniq.
Если вам действительно не нравятся детали после первого поля, вы можете использовать следующую команду, чтобы найти дубликаты ключей и напечатайте каждый номер строки для него (добавьте еще один | sort -n, чтобы получить сортировку по строке):
cut -d ' ' -f1 .bash_history | nl | sort -k2 | uniq -s8 -D
Поскольку вы хотите видеть повторяющиеся строки (используя первое поле как ключ), вы не можете напрямую использовать uniq. Проблема, затрудняющая автоматизацию, заключается в том, что части заголовка меняются, но программа не может автоматически определить, какой заголовок следует считать окончательным.
Вот сценарий AWK (сохраните его до script.awk), который принимает ваш текстовый файл в качестве ввода и распечатает все повторяющиеся строки, чтобы вы могли решить, что удалить. (awk -f script.awk yourfile.txt)
#!/usr/bin/awk -f
{
# Store the line ($0) grouped per URL ($1) with line number (NR) as key
lines[$1][NR] = $0;
}
END {
for (url in lines) {
# find lines that have the URL occur multiple times
if (length(lines[url]) > 1) {
for (lineno in lines[url]) {
# Print duplicate line for decision purposes
print lines[url][lineno];
# Alternative: print line number and line
#print lineno, lines[url][lineno];
}
}
}
}
У меня была такая же проблема. Это из-за неправильного пути, выбранного андроид-студией JDK. В любом случае, вы можете исправить это, установив путь JDK.
Вы можете сделать это, открыв Configure → Project Default → Project Structure внутри Android Studio и установив путь JDK.
Я нашел решение благодаря видео YouTube от Мигеля Арчилы. Шаги по устранению проблемы:
Откройте меню «Файл». Перейдите к структуре проекта. Снимите флажок «Использовать встроенный JDK (рекомендуется)». Просмотрите свою файловую систему и выберите, где установлен JDK. Это может быть /usr/local/java/jdk1.8.0_112 или аналогичный каталог.