Найти и напечатать самое большое слово с рисунком

Использовать переменную CSS:

.outer:hover {
  background: yellow;
  --c:transparent;
}

.inner {
  background: var(--c,red);
}
<div class="outer">
  <div class="inner">Something</div>
</div>

Или использовать inherit:

.outer:hover {
  background: yellow;
}
.outer:hover .inner {
  background:inherit;
}

.inner {
  background: red;
}
<div class="outer">
  <div class="inner">Something</div>
</div>

1
задан FJ Garrido 19 January 2019 в 10:14
поделиться

4 ответа

Grep не может сделать это в одиночку, но с помощью awk:

awk '/abc$/{m=length([110])>length(m)?[110]:m}END{print m}' infile
0
ответ дан ctac_ 19 January 2019 в 10:14
поделиться
grep -E \abc log.txt | awk '{print length($1) " " $1}' | sort -n |  tail -1 | awk '{print $2}'

Идея: найти длину, отсортировать по числу, а затем из последней строки вывести только 2-й элемент.

0
ответ дан Marcel Preda 19 January 2019 в 10:14
поделиться

С помощью одной команды awk вы можете получить ее:

awk 'BEGIN {global_max = 0} /abc$/ {cur_max=length([110]); if (cur_max > global_max) {global_max=cur_max; word=[110]}} END {print word}' log.txt

Использовать переменную global_max, которая будет отслеживать самое длинное увиденное слово (инициализировать нулем в блоке BEGIN). [ 114]

Затем, для каждой строки, которая заканчивается на «abc», получите длину и сравните ее с максимальной глобальной длиной. Если это больше, замените старые значения новыми.

Наконец, напечатайте найденное слово.

0
ответ дан Poshi 19 January 2019 в 10:14
поделиться

Использование sort будет работать медленнее (сложность O(n log n)). Вы должны посещать каждый элемент только один раз, как показано ниже (сложность O(n):

maxSize=0; maxWord=""; while read -r LINE; do if [[ ${#LINE} -gt $maxSize ]]; then maxSize=${#LINE}; maxWord="${LINE}"; fi; done < input.txt; echo "$maxWord"
0
ответ дан Robert Seaman 19 January 2019 в 10:14
поделиться