Замена всех слов в строке, кроме тех, что соответсвуют шаблону. sed, awk
есть строка
14:24:14 текст @vp текст
Нужно с помощью sed или awk или других инструментов
на выходе оставить только @vp
т.е. заменить все слова, что не содержат @ на "", (@ - всегда в начале слова)
либо найти и вывести слова в которх есть @
Ответы (2 шт):
Автор решения: Владимир Uglevod
→ Ссылка
Прикольно, что есть этот сервис )
Решение
cat 200408.vp | grep "@" | tr " " "\n" | grep "@" | sort -u
выводим все строки в которых есть @
разделяем по пробелу
и снова выводим, но уже все слова в которых есть @
- в моем случае полезно оставить только уникальные варианты
( опционально можно еще посчитать оличество вхождений wc -l )
Bash мощь )
Автор решения: Ainar-G
→ Ссылка
Вариант выдачи уникальных слов, начинающихся с @, на
awk:
{
for (f = 1; f <= NF; f++) {
if ($f ~ /^@/) {
good[$f] = 1;
}
}
}
END {
for (w in good) {
print(w);
}
}
Дальше отправить в sort без -u.