LINUX.ORG.RU

Сообщения alexross

 

Не работает переменная в GREP

Форум — General

Пробую использовать в grep переменную, но не получается, то ли синтаксис неправильный то ли вообще невозможно. Подскажите пожалуйста…

#вот так работает
grep -E ‘constanta(:|;)’ all_txt.txt > 1.txt

#а вот так нет
domains_var=‘constanta(:|;)’
grep -E $domains_var all_txt.txt > 1.txt

 

alexross
()

Как посчитать количество дублей в столбце не меняя порядка строк

Форум — General

Подскажите как посчитать количество одинаковых значений в столбце так, чтобы в итоге получился список строк в том же порядке и без удаленных дубликатов. sort file | uniq -c меняет порядок строк и удаляет дубликаты. попробовал пронумеровать строки cat или nl -ba file , чтобы потом можно было восстановить порядок, но все равно не понимаю как посчитать повторяющиеся строки без изменения первоначального порядка строк в столбце.

– Нужно из вот такого:
текст1
текст2

текст1

текст1
текст2
текст3

– Сделать вот такое
текст1;3
текст2;2
;2
текст1;3
;2
текст1;3
текст2;2
текст3;1

Пустые строки тоже нельзя удалять, их нужно тоже посчитать.

Был бы благодарен за помощь!!

 ,

alexross
()

Помогите обработать csv таблицу

Форум — General

Здравствуйте! Помогите, пожалуйста с сортировкой таблицы, никак не могу найти ответ. Нужно посчитать количество одинаковых вхождений для каждого из столбцов таблицы кроме 1,2,3 столбца и дописать это количество рядом со столбцом(справа создав новый) и после этого отсортировать по одному из столбцов в порядке убывания

я только смог через awk и sort вычленить один столбец и посчитать уникальные вхождения вот так:
cat file1.csv | awk -F «;» ‘{print $4} sort -n’ | sort | uniq -c > del1.tmp
sort -g -r del1.tmp > file2.csv
и ума не приложу как это сделать с таблицей целиком

Вот как выглядит таблица первоначально:

file1.csv
data;data;data;data-5;data-55;data-1;data-75;data-83;data-95;data-105;data-115
data;data;data;data-5;data-57;data-5;data-77;data-83;data-97;data-107;data-117
data;data;data;data-1;data-51;data-1;data-71;data-81;data-91;data-101;data-111
data;data;data;data-5;data-56;data-6;data-76;data-83;data-96;data-106;data-116
data;data;data;data-1;data-52;data-1;data-72;data-82;data-92;data-101;data-112
data;data;data;data-3;data-53;data-1;data-73;data-83;data-93;data-103;data-113
data;data;data;data-4;data-54;data-1;data-74;data-83;data-94;data-104;data-114
data;data;data;data-6;data-58;data-4;data-78;data-83;data-98;data-108;data-118
data;data;data;data-7;data-59;data-3;data-79;data-89;data-99;data-109;data-119

а вот что должно получиться: (видно, что в 4-м столбце data-1 и data-5 встречаются соответственно 2 и 3 раза, что и записано в 5-м столбце, а затем 5-й столбец отсортирован)

file2.csv
data;data;data;data-5;3;data-55;1;data-1;5;data-75;1;data-83;6;data-95;1;data-105;1;data-115;1
data;data;data;data-5;3;data-56;1;data-6;1;data-76;1;data-83;6;data-96;1;data-106;1;data-116;1
data;data;data;data-5;3;data-57;1;data-5;1;data-77;1;data-83;6;data-97;1;data-107;1;data-117;1
data;data;data;data-1;2;data-51;1;data-1;5;data-71;1;data-81;1;data-91;1;data-101;2;data-111;1
data;data;data;data-1;2;data-52;1;data-1;5;data-72;1;data-82;1;data-92;1;data-101;2;data-112;1
data;data;data;data-3;1;data-53;1;data-1;5;data-73;1;data-83;6;data-93;1;data-103;1;data-113;1
data;data;data;data-4;1;data-54;1;data-1;5;data-74;1;data-83;6;data-94;1;data-104;1;data-114;1
data;data;data;data-6;1;data-58;1;data-4;1;data-78;1;data-83;6;data-98;1;data-108;1;data-118;1
data;data;data;data-7;1;data-59;1;data-3;1;data-79;1;data-89;1;data-99;1;data-109;1;data-119;1

 ,

alexross
()

Как вычесть из одного списка другой

Форум — General

Подскажите пожалуйста - как вычесть из одного текстового списка другой на bash

Нашел вот такой вариант:

{ cat text1.txt | sort -u; cat text2.txt text2.txt; } | sort | uniq -u > resultat.txt

Но такое вычитание при работе со списками 5-10 млн строк отнимает по несколько часов. Есть ли более быстрые варианты сравнения списков.

Попробовал diff, но при выполнении «diff: memory exhausted» , вроде памяти не хватает…

попробовал comm -13 <(sort text1.txt) <(sort text2.txt) > resultat.txt

тоже очень медленный вариант, а больше ничего не нашел

 

alexross
()

lftp удаление файлов по маске не получается

Форум — General

Помогите пожалуйста, не могу удалить на удаленном ftp (каламбур) группу файлов. Один файл удаляется без проблем вот так:

lftp login:password@192.168.1.1/papka -e «rm file.txt; quit»

а как бы удалить группу? *.txt вот так не получается

lftp login:password@192.168.1.1/papka -e «rm *.txt; quit»

вроде как-то можно получить сначала список файлов, потом удалить, но не могу найти примеров.

 , ,

alexross
()

Парсинг имен доменов(и сабдоменов) из txt файла regex BASH

Форум — Development

Пожалуйста помогите - как выбрать из текстового файла(file.txt) все домены. Как первого так и N-уровня Собрал вот такую строку:

grep -oP  "(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]" file.txt > domains.txt

Но есть домены, в которых используется нижнее подчеркивание «_» , и такие домены не попадают в выборку. Такие, например:

mail.mta-sts.mail.mail._mta-sts.mail.mail.mail.mail.mail.mail.humberside.bid

и их обрезает вот до такого состояния:

mta-sts.mail.mail.mail.mail.mail.mail.humberside.bid

Как изменить регулярку так, чтобы парсилось целиком домен с поддоменами, даже содержащими «_» ?

 , ,

alexross
()

RSS подписка на новые темы