Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Открыть новую тему     Написать ответ в эту тему

digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи вопрошающие! Если ваша система отлична от ГНУ, и в то же время вы желаете обойтись только дефолтными средствами, указывайте и то и другое сразу, пожалуйста.


UNIX Shell

 
   Это глобальная тема по юниксовой командной оболочке, как по интерактивной работе в командной строке, так и по шелл-скриптам. Ключевые слова: sh, bash, zsh, tcsh, busybox, readline, coreutils, cp, mv, ln, rm, ls, readlink, mkdir, touch, stat, date, test, sleep, chown, chmod, chattr, dd, df, du, env, echo, cat, less, man, grep, sort, findutils, find, locate, xargs, md5sum, cmp, diff, patch, ps, kill, killall, tar, gzip, bzip2, xz, mount, fdisk, parted, mkfs, fsck, e2fsprogs, mtools, ss, netcat, netstat, rsync, ssh, scp, sftp, lftp, ncftp, time, strace.
   Неинтерактивная обработка текста (sed, awk, perl) пока тоже здесь.
   Смотри в других ветках: wget, convert, montage, mogrify и др., gs, git, 7z, p7zip, soffice, mplayer, mencoder, vlc, vim, mc, mcedit, kioclient.
 
 

Hint! Русские маны (подустаревшие, не всегда полные и не всегда для вашей системы) можно попытаться найти на Опеннете, к примеру: bash, tar, grep.

 
Готовые решения:
  • commandlinefu.com
    Крупнейшая база полезных однострочников на командной оболочке с ранжированием на основе пользовательского голосования.
     
  • shell-fu.org
    Аналогично, но поменьше и формат записей более свободный, поэтому встречаются и однострочники, и развернутые скрипты, и просто советы.
     
  • Useful one-line scripts for sed
    Почти исчерпывающий список решений для тех случаев, когда sed незаменим. Более сложные скрипты с sed.sf.net — только для тех, кто знает толк... :)

 
Учебная литература:
  • Greg’s Wiki (http://mywiki.wooledge.org)
    Наиболее обширный авторский сборник постоянно обновляющихся материалов по Башу.

    1. Bash Pitfalls
      (Частые ошибки программирования на Баше: [1], [2], [3], [4], [5] — пер. на русский по сост. на дек. 2008 г.).
      Рассмотрены преимущественно ошибки, возникающие из-за непонимания отличия шелла от «нормальных» скриптовых языков. Если вы уже владеете, например, Перлом, то это вполне может быть ваше первое руководство для ознакомления с Башем.
    2. Bash FAQ
    3. Bash Guide
    4. Bash Reference Sheet
      Шпаргалка по частым синтаксическим оборотам.

 
Классическая учебная литература:
С одной стороны не упомянуть эти издания нельзя, с другой — они настолько устарели, что едва ли их можно рекомендовать в роли учебника.

 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.
Первый пост темы имел вид...

Всего записей: 351 | Зарегистр. 19-04-2003 | Отправлено: 18:51 16-05-2008 | Исправлено: qw12, 09:42 24-03-2020
sattan



taNo
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
пример файла test.txt
 
569346
337760
1409353
330195
1083388
 
а вот пример строки в логах
 
2019-10-01T23:53:52.683-04:00 HERE [meta@7 class="c.k.a.v.f.r.HERE" domain="HERE" HEREName="HERE" severity="INFO" threadId="1230" threadName="a ST HTTP-link_HERE" trace="94800041a602bdbc5d4e5f4b83180616/5d4e5f4b83180616/-"] Quering data for SID [330195]. Processed: [1050], filtered: [0]. Returned: [0]
 
 
Добавлено:
вот читаю - https://www.shellhacks.com/ru/bash-read-file-line-by-line-while-read-line-loop/ - вроде бы всё понятно
составляю свою команду - не хочет работать
какая то магия.

----------
к дракону надо приходить с подарками

Всего записей: 5226 | Зарегистр. 24-07-2001 | Отправлено: 12:18 26-11-2019
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sattan,

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 13:36 26-11-2019
sattan



taNo
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это фантастика - у меня пустой вывод... жесть.
спасибо
разобрался
был неправильный файл test.txt
 
команда рабочая
огромное спасибо всем за помощь!

----------
к дракону надо приходить с подарками

Всего записей: 5226 | Зарегистр. 24-07-2001 | Отправлено: 14:05 26-11-2019 | Исправлено: sattan, 14:11 26-11-2019
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sattan
Ой. чёт я тупанул, проще и быстрее вообще так (grep сам всё умеет):
Код:
grep -f /path/to/test.txt -F -r /var/log/yourapp_log_dir/
(опция -h, как я уже сказал, по-желанию)

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 18:58 26-11-2019 | Исправлено: Alukardd, 18:59 26-11-2019
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По awk ещё вот такой вопрос появился :
 
как из данных вида
Код:
data="aaa###bbb ccc ddd
eee###ddd fff ggg"
вытянуть fff и всё что после него включительно, при том, что в первом проходеиспользуется split с делемитером "###" и aaa и eee соотвественно отсекается ? Через for перебрать ? Не соображу как код покрасивее сделать

Всего записей: 2090 | Зарегистр. 19-09-2011 | Отправлено: 10:07 03-12-2019
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baltazar500

Код:
echo "$data" | grep -oP '.*###.*\Kfff.*'

ну или так, если хочется именно awk
Код:
echo "$data" | awk -F '###' '{n = sub(/.*fff/,"fff",$2); if (n) print $2}'

 
Добавлено:
хотя так не очень точно и будут ложные срабатывания. но регулярку сами под себя подправьте, т.к. на реальных данных там может ни когда и не будет ложных срабатываний

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 19:59 03-12-2019
karavan



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Прошу помочь с задачей изменения переменной силами bash, не прибегая к помощи никаких текстовых редакторов.
Есть переменная:
Код:
$ echo ${NIX_PATH}
/root/.nix-defexpr/channels:nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels

где nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos
надо заменить на nixpkgs=/root/GIT/nixpkgs
Пока остановился на варианте:
Код:
$ echo ${NIX_PATH/nixpkgs=*:nix/nixpkgs=\/root\/GIT\/nixpkgs:nix}
/root/.nix-defexpr/channels:nixpkgs=/root/GIT/nixpkgs:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels

Но он не устраивает меня тем, что я не могу гарантировать в какой позиции будет находиться nixpkgs= и не появится ли еще какой параметр с именем nix*
Как избавиться от "жадности"?
Попытка использовать квантификаторы никак не удается:
Код:
$ echo ${NIX_PATH/nixpkgs=[^:]/nixpkgs=\/root\/GIT\/nixpkgs}
/root/.nix-defexpr/channels:nixpkgs=/root/GIT/nixpkgsnix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
$ echo ${NIX_PATH/nixpkgs=[^:]\+/nixpkgs=\/root\/GIT\/nixpkgs}
/root/.nix-defexpr/channels:nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
$ echo ${NIX_PATH/nixpkgs=[^:]+/nixpkgs=\/root\/GIT\/nixpkgs}
/root/.nix-defexpr/channels:nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
 

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 04:36 04-12-2019
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karavan

Код:
echo ${NIX_PATH/nixpkgs=+([^:])/nixpkgs=\/root\/GIT\/nixpkgs}
(должен быть включен extglob, но у меня он почему-то уже включен)

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 14:38 04-12-2019 | Исправлено: Alukardd, 14:40 04-12-2019
karavan



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alukardd
Огромное спасибо!
Остались еще вопросы.
К какой сущности относится такой изощренный способ указания квантификатора? Это особенность bash?
Где еще с такой особенностью можно столкнуться?

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 14:58 04-12-2019
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karavan
Ага, это чистый bash, больше такого я ни где не встречал. В остальных местаж всё ж либо POSIX regex, либо PCRE. Хотя bash и умеет в posix regex, например в операторе =~

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 18:27 04-12-2019 | Исправлено: Alukardd, 18:27 04-12-2019
redson



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто нибудь делал bash скрипт для отправки сообщения в viber (через curl webhook) ?

Всего записей: 1336 | Зарегистр. 23-04-2007 | Отправлено: 11:27 06-12-2019
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
redson
Это же один http запрос, какой скрипт?
Или Вы хотите что-то более сложное? В любом случае, особенности REST API Viber'а не имеют особого отношения к скрипту.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 20:11 06-12-2019
redson



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
можно пример http запроса для отправки сообщения?

Всего записей: 1336 | Зарегистр. 23-04-2007 | Отправлено: 13:13 08-12-2019
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
redson
https://developers.viber.com/docs/api/rest-bot-api/#send-message

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 14:20 08-12-2019
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.  
echo 321 выводит 321
echo 321 | pbcopy копирует в буфер обмена, но без вывода на экран
 
как скопировать результат в буфер, но с выводом на экран?
echo 321 | grep -o . | sort -f | tr -d '\n'; echo

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 14:28 24-12-2019
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
man tee

Всего записей: 884 | Зарегистр. 14-12-2005 | Отправлено: 14:50 24-12-2019
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235, дельный совет.
 
не вам
как вариант
echo 321 | grep -o . | sort -f | tr -d '\n' | pbcopy && echo `pbpaste`
можно ли сделать компактнее, "красивее" что ли?

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 15:25 24-12-2019
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
echo 321 | grep -o . | sort -f | tr -d '\n' | tee /dev/stderr | pbcopy

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 18:08 24-12-2019
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd,
спасибо. В варианте с pbpaste вывод посимпатичней будет

 


Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 20:19 24-12-2019 | Исправлено: los, 20:20 24-12-2019
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
пффф, так сдвиньте tee до tr, в чём проблема-то?

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 20:23 24-12-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru