Использовать переменную 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>
Grep не может сделать это в одиночку, но с помощью awk:
awk '/abc$/{m=length([110])>length(m)?[110]:m}END{print m}' infile
grep -E \abc log.txt | awk '{print length($1) " " $1}' | sort -n | tail -1 | awk '{print $2}'
Идея: найти длину, отсортировать по числу, а затем из последней строки вывести только 2-й элемент.
С помощью одной команды 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», получите длину и сравните ее с максимальной глобальной длиной. Если это больше, замените старые значения новыми.
Наконец, напечатайте найденное слово.
Использование 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"