|
2 / 2 / 0
Регистрация: 16.10.2020
Сообщений: 2
|
||||||||||||||||
awk и удаление лишних строк16.10.2020, 12:25. Показов 2398. Ответов 4
Здравствуйте!
Столкнулся с проблемой выборки текста средствами awk в файле вида:
Больше готового решения жажду наводки. Банальности вроде "прочти руководства тонну" и ссылка: принимаются ;-). Всем добра. P.S. задачу свою в любом случае решил башем, хочется средствами awk. Заранее спасибо. P.P.S. ЧЯДНТ?
2
|
||||||||||||||||
| 16.10.2020, 12:25 | |
|
Ответы с готовыми решениями:
4
Сцепка текста в ячейках, если совпадают значения в столбце А, удаление повторов имен, удаление лишних строк
|
|
49 / 49 / 14
Регистрация: 21.03.2011
Сообщений: 113
|
||||||
| 16.10.2020, 12:42 | ||||||
|
Исходя из условия, должно помочь
1
|
||||||
|
|
||||||||||||||||||||||||||
| 16.10.2020, 17:18 | ||||||||||||||||||||||||||
Сообщение было отмечено apeshand как решение
Решение
Попробовала изменить порядок строк во входном файле и усложнить ради спортивного интереса:
cat file:
cat awk.sh:
2
|
||||||||||||||||||||||||||
|
2 / 2 / 0
Регистрация: 16.10.2020
Сообщений: 2
|
||||||
| 16.10.2020, 18:00 [ТС] | ||||||
|
Спасибо за Ваш ответ, nezabudka, и ответ sonar200.
Возник ряд вопросов касательно кода с сортировкой:
Как говорил ранее - можете направить на чтение документации, если в доке есть примеры - спасёт время и нервы, если нет - пожалуйста объясните, хотя бы своими словами. P.S. в итоге из 5 строчек у меня счёт на понимание меньше единицы.
0
|
||||||
|
|
|||||||||||||||||||||
| 16.10.2020, 20:14 | |||||||||||||||||||||
|
apeshand, Судя по уровню ваших вопросов, рискну объяснить своими словами, думаю это будет полезней, но все равно вам стоит хотя бы по диагонали пролистать ман страничку
man awk.PROCINFO это внутренняя переменная - массив, через который можно влиять на работу процессора awk в том числе и сортировку. Попробуйте изменить значение с "@ind_str_asc" на "@ind_str_desc" и получите обратную сортировку по убывающей. Заметно невооруженным глазом, что значение состоит из трех объектов, читаю с переводом на русский по порядку @индекс_строка_поВозростанию, следующая - @индекс_строка_поУбыванию. Индекс - в данном случае имеется ввиду ключNR==FNR {A[$0]; next} Предполагает что процессор работает с несколькими файлами и массив из всех строк первого файла создается в переменной А. Я написала один и тот же файл в программе два раза, применяя "Расскрытие скобок", первый раз читая файл процессор создает массив, а второй производит обработку с записью в другой массив D. Расскрытие скобок или Brace Expantion хорошо наблюдать через команду echo:
Что касается вот этой конструкции {a=$0; NF-=1; if(!($0 in A)) D[a]}, давайте немного изменим программу и возьмем в качестве аргумента ваш первоначальный пример входного файла:
a всю строку целиком, чтобы не потерять это значение, потому что следующая операция не обратима. Урезаем количество полей на единицу NF=1. Теперь у нас вся строка определенная в переменной $0 урезается на одно - последнее поле, и там ноходится только первое. Теперь проверяем есть ли совпадение в ключе массива D, если нет, добавляем в массив значение (0 по умолчанию) с ключем - первоначальной, не урезанной, полной строкой. Это дает нам возможность применить нежадный алгоритм - то есть по короткому совпадению.Возвращаемся и видим что одна строчка в боевой программе является универсальной и заменяет множество возможных вариантов из учебной. Как только скрипт обработает значения и создаст результирующий массив данных, можно прочитать его ключи в цикле и вывести на экран. То есть уже после того как файлы будут прочитаны. Аналог END {for(i in D) print i} на баше будет:
1
|
|||||||||||||||||||||
| 16.10.2020, 20:14 | |
|
Помогаю со студенческими работами здесь
5
Удаление лишних строк - доделать макрос Удаление лишних строк таблицы, парсер PS
Упражнение 1.18 Удаление лишних пробелов, табуляций и строк Удаление лишних пустых строк и пробелов на конце строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|