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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
armaturator

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть  файл с такой структурой
name|number|id
разделение используется именно "|"
как мне его роспарсить чтобы при проверке айди "id" имя "name" "выводилось" писалось  в такой-то файл, если айди "id" такой-то то имя "name" в такой-то файл

Всего записей: 6 | Зарегистр. 16-03-2012 | Отправлено: 15:29 22-05-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
armaturator
Я не до конца распарсил отправленный вами набор слов, но думаю, посмотрев на пример ниже, вы легко сделаете, что вам нужно.
 
$ gawk -F '|' '$3 == "foo" { print $1 > "foofile" }  $3 == "bar" { print $1 > "barfile" }'

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:48 22-05-2012
armaturator

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
спасибо большое то что нужно

Всего записей: 6 | Зарегистр. 16-03-2012 | Отправлено: 16:44 22-05-2012
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста как можно разобрать текстовые блоки ?
 
  - ResourceRecordSetCount: 6
    CallerReference: 96b6713d
    Config:
    Id: /hostedzone/ZNRT8675
    Name:domain.ru
  - ResourceRecordSetCount: 2
    CallerReference: 0c15b044
    Config:
    Id: /hostedzone/Z3IJLT5
    Name: domain.com.
 
на выходе нужно получить  ZNRT8675 и  domain.ru и выполнить операцию экспорта, и так по всем блокам

Код:
 
zonename=ZNRT8675
zoneid=domain.ru
#
cli53 export $zoneid --full >$zonename
....
 

 
Спасибо.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 02:15 24-05-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech
Ну если данные промежуточные не нужны то можно так:
Код:
gawk -F':' '/^[[:blank:]]*Id/{id=$2;} /^[[:blank:]]*Name/{system("cli53 export "id" --full > "$2)}' /tmp/source
в противном случае можно 2 скрипта сделать: 1 - просто вытащит пары, 2 - выполнит команду для каждой пары. Мне просто лениво было и я в gawk засунул системный вызов.

----------
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:39 24-05-2012
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Спасибо.
 
Почти всё работает, у меня не /hostedzone/Z3IJLT5  а просто  Z3IJLT5.
Т.е. из /hostedzone/Z3IJLT5 нужно получить Z3IJLT5

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 19:29 24-05-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech
проморгал...
щас в баньку схожу - потом напишу там просто gsub() надо добавить вокруг id... Можеш погуглить или в мане глянуть. Убёг)

----------
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 24-05-2012
Alukardd



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

Код:
gawk -F':' '/^[[:blank:]]*Id/{id=$2;} /^[[:blank:]]*Name/{system("cli53 export "gensub(/.*\//,"","",id)" --full > "$2)}' /tmp/source
Разумеется это именно для gawk, для awk будет немного по другому.

----------
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 | Отправлено: 23:38 24-05-2012
ForposT_ForeveR



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте.
Вопрос по регулярному выражению для grep.
Имеется такой вот списочек:
 
100890!ACE TENNIS NET !58 !46.4 !01-JAN-89
100860!ACE TENNIS RACKET I !35 !28 !01-JUN-90
100861!ACE TENNIS RACKET II !45 !36 !01-JUN-90
100870!ACE TENNIS BALLS-3 PACK !2.8 !2.4 !01-JAN-90
100871!ACE TENNIS BALLS-6 PACK !5.6 !4.8 !01-JAN-90
101860!SP TENNIS RACKET !24 !18 !15-FEB-89
101863!SP JUNIOR RACKET !12.5 !9.4 !15-FEB-89
102130!RH: "GUIDE TO TENNIS" !3.4 !2.8 !18-AUG-89
200376!SB ENERGY BAR-6 PACK !2.4 !1.75 !15-NOV-90
200380!SB VITA SNACK-6 PACK !4 !3.2 !15-NOV-90
103120!WIFF SOFTBALL BAT I !25 !20 !01-JUN-90
103121!WIFF SOFTBALL BAT II !30 !24 !01-JUN-90
103130!WIFF SOFTBALL, SMALL !4.2 !3.6 !01-JAN-90
103131!WIFF SOFTBALL, LARGE !4.5 !3.9 !01-JAN-90
103140!WIFF SOFTBALL MITT (LH) !20 !15 !15-FEB-89
103141!WIFF SOFTBALL MITT (RH) !20 !15 !15-FEB-89
102132!RH: "GUIDE TO SOFTBALL" !3.4 !2.8 !18-AUG-89
104350!DUNK BASKETBALL INDOOR !44 !35.3 !01-JUN-90
104351!DUNK BASKETBALL OUTDOOR !26 !20.8 !01-JUN-90
104352!DUNK BASKETBALL PROFESSIONAL!58.3 !40.8 !01-JUN-90
104360!DUNK HOOP !39 !32 !01-JAN-90
104361!DUNK HOOP W/FIBERGLASS BOARD!50 !35 !01-JAN-90
104362!DUNK NETS - RAINBOW !5 !4 !15-FEB-89
102134!RH: "GUIDE TO BASKETBALL" !3.4 !2.8 !18-AUG-89
105123!YELLOW JERSEY BICYCLE HELMET!40 !34 !01-JUN-90
105124!YELLOW JERSEY BICYCLE GLOVES!15 !10 !01-JUN-90
105125!YELLOW JERSEY WATER BOTTLE !3 !2.6 !01-JAN-90
105126!YELLOW JERSEY BOTTLE CAGE !6 !5 !01-JAN-90
105127!YELLOW JERSEY FRAME PUMP !6 !5 !15-NOV-90
105128!YELLOW JERSEY SADDLE PACK !10 !8 !15-NOV-90
102136!RH: "GUIDE TO CYCLING" !3.4 !2.8 !18-AUG-89
 
Подскажите, пожалуйста, как получить строки, которые содержат слово YELLOW и заканчиваются на цифру 90.
Пробовал grep "YELLOW*90$" myfile.txt, не помогает.
Отдельно "YELLOW" и "90$" отрабатывают.

Всего записей: 525 | Зарегистр. 11-12-2004 | Отправлено: 23:45 24-05-2012
slech



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

Код:
 
grep ".*YELLOW.*90$" s.txt
 

 
Добавлено:
Alukardd
эх, банька ....
спасибо большое. отработало на 5 +

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 23:52 24-05-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос
dendodor
Цитата:
Помогите написать скрипт в Debian Linux след характера. Необходимо рекурсивно найти в некотором каталоге все файлы и их имена записать в файл Temp.txt построчно

Код:
find /some/catalog -type f -printf '%f\n' > Temp.txt


----------
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 | Отправлено: 21:33 27-05-2012
dendodor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd, спасибо БОЛЬШОЙ!!!!

Всего записей: 158 | Зарегистр. 27-11-2008 | Отправлено: 23:32 27-05-2012
urodliv



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

Цитата:
 
Люди, помогите пожалуйста написать скрипт. Скрипт принимает в переменную имя файла и ищет все файлы с этим именем.

 
 

Код:
 
#! /bin/bash
find / -iname $1  


----------
Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

Всего записей: 6689 | Зарегистр. 29-04-2009 | Отправлено: 23:21 06-06-2012 | Исправлено: urodliv, 23:22 06-06-2012
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди, помогите пожалуйста написать скрипт. Скрипт принимает в переменную имя файла и ищет все файлы с этим именем.

----------
Оптимистично смотрю на мир глазами убийцы.

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 23:31 06-06-2012
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro
Глазки поднимите этажом выше, там я вам скрипт уже написал.

----------
Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

Всего записей: 6689 | Зарегистр. 29-04-2009 | Отправлено: 23:54 06-06-2012
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по aria2 в винде. Можно ли запустить сразу несколько торрентов на скачку раздачу или нужно для каждого торрентфайла свой aria2c.exe запускать?

Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:42 11-06-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
king_stiven
Да, афайк, для каждого задания нужно запускать отдельный процесс. А это что, плохо?

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 20:50 11-06-2012
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый вечер, king_stiven , ASE_DAG
UsageExample

Цитата:
 
Download using a local torrent file
aria2c -u40K /path/to/file.torrent
You can download multiple torrents.  
aria2c /path/to/file1.torrent /path/to/file2.torrent
 

Проверил, работает в параллель.

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 20:57 11-06-2012
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Просто думал запускать вместо utorrent, а там несколько сот торрентфайлов.
 
Добавлено:
Alex_Piggy
А раздавать несколько сот торентов?

Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:57 11-06-2012
Alex_Piggy

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

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 21:16 11-06-2012 | Исправлено: Alex_Piggy, 00:06 12-06-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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