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

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

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

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
      Шпаргалка по частым синтаксическим оборотам.

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

 

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

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



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Deoptimizer
Может так проще - http://www.mediafire.com/file/9jv8z0t6zafy54e/CM2+MT2+Boot+Files+By+GSM+Friends+Team.zip

Всего записей: 12815 | Зарегистр. 11-03-2002 | Отправлено: 20:48 23-07-2020
Deoptimizer

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
На флешке фотографии более 2мб каждая
Этот файл был для примера.

Всего записей: 315 | Зарегистр. 12-06-2015 | Отправлено: 20:55 23-07-2020
los

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

Всего записей: 7731 | Зарегистр. 08-09-2001 | Отправлено: 21:12 23-07-2020
Deoptimizer

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Я же говорю, более 1.6МБ чтения с флешки(за сессию) приводит её в ступор, что-то с буфером наверное.

Всего записей: 315 | Зарегистр. 12-06-2015 | Отправлено: 21:15 23-07-2020 | Исправлено: Deoptimizer, 21:19 23-07-2020
los

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

Всего записей: 7731 | Зарегистр. 08-09-2001 | Отправлено: 21:24 23-07-2020
Deoptimizer

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
Да, ладно действительно это проще.
Плугин для TC => DiskInternals Reader кое как, 8 ГБ SD карточку читает, прошло десять минут, а уже 800МБ(из 8ГБ) скопировало, т.е. процесс идет, хоть и медленно но идет.
 
Спасибо.

Всего записей: 315 | Зарегистр. 12-06-2015 | Отправлено: 21:41 23-07-2020
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как одним регекспом произвести выпил/замену всех невалидных для файловой системы (FAT32/NTFS) символов и всё корректно экранировать ? Целевая оболочка - bash

Всего записей: 2310 | Зарегистр. 19-09-2011 | Отправлено: 20:49 03-09-2020
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baltazar500
Есть ещё зарезервированные имена, точка или пробел в конце и регистронезависимость (точнее, сама NTFS вроде как регистр различает, а Win API нет).
Плюс для самой оболочки в двойных кавычках нужно экранировать $, ` и ! ("\" не в счёт).
 
P.S. К слову, для Double Commander есть плаги на эту тему: checkfilenamewdx.lua и caseduplwdx.lua. Но они не исправляют, только показывают.

Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 05:04 04-09-2020
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baltazar500
есть список того что нужно заменить/удалить и для какой программы нужен синтаксис?
 
посмотрите вдруг пригодится
https://github.com/lockettnb/fix_file_names
https://github.com/goerz/fix_filenames

Всего записей: 7731 | Зарегистр. 08-09-2001 | Отправлено: 10:57 04-09-2020
ndch

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу извинить меня, но не подскажете куда задать вопрос по виндовому curl ?
Интересует как уменьшить cpu usage  при скачивании файла по https.

Всего записей: 7005 | Зарегистр. 31-08-2008 | Отправлено: 12:11 06-09-2020
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skif_off, я лишь про стандартный набор символов '\/:*?"<>|' которые тупо не будут приняты ФС и не будут созданы файлы. Просто нормально терпминала не было, а с тем что был, замаялся играть в поддавки >_<
 
los, не заморачивайтесь уже запилил под sed
Код:
echo -n '\/:*?"<>|'|sed -r 's#\\|/|:|\*|\?|"|<|>|\|##g'


Всего записей: 2310 | Зарегистр. 19-09-2011 | Отправлено: 06:17 07-09-2020 | Исправлено: Baltazar500, 01:24 08-09-2020
MAGNet



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

Цитата:
уже запилил под sed

Baltazar500, проще. sed не нужен

Код:
echo -n '\/:*?"<>|' | tr -d '\\/:\*\?\"<>\|'

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 08:32 08-09-2020 | Исправлено: MAGNet, 08:38 08-09-2020
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MAGNet, спасибо. Ваш пост прошёл мимо меня, но благо увилел его т.к. возникла необходимость разрешить непонятку с awk.
 
Как в переменную внутри awk запихнуть выражение с его предварительной обработкой ? Что-то типа
Код:
 echo 456|awk '{abc="{print $0 \"123\"}"; print abc}'
по аналогии с использованием system() выхлопов, но то, что будет давать еа выходе конечного выражения "456 123", а не "{print $0 "123"}" ?

Всего записей: 2310 | Зарегистр. 19-09-2011 | Отправлено: 17:13 14-11-2020
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Давным давно имел дело - но уже все забыл как делать в Linux.
Помогите пожалуйста - можно и без визуализации как начал здесь
 
Есть две папки с одинаковой сложной многоуровневой структурой, очень длинными именами - как английскими так и русскими.
 
Надо  -  в одной папке найти  -  каждый файл  -  если его дата  (последняя из  создан\модифицирован - в Windows-6)  -  в интервале 2х времен  -  то определить путь этого файла  -  заменить в пути первый "член" на путь ко второй папки - скопировать файл с таким же именем и местом  -  из второй в первую папку - с преодолением всех возможных запретов Windows-6 на замену файла.
 
Помогите сделать такой простой скрипт.
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1815 | Зарегистр. 04-09-2015 | Отправлено: 21:33 10-12-2020 | Исправлено: alex52mail, 22:02 10-12-2020
Mavrikii

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

Код:
cd /path1
find . -newermt "date1" ! -newermt "date2" -newerct "date1" ! -newerct "date2" -type f -exec cp -pf /path2/{} {} \;

проверяйте

Всего записей: 15597 | Зарегистр. 20-09-2014 | Отправлено: 22:11 10-12-2020 | Исправлено: Mavrikii, 22:14 13-12-2020
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо за помощь.
 
find  -  в текущей директории возвращает путь {} как  ./ххх
Эта точка - не дает сформировать правильный новый путь /path2/{}   (/  - тут лишний в конце)
Получается типа  /path2./ххх
   1).    Как убрать эту точку ?
 
И где прочитать значение точки после find  .
find   /mnt/sda1/rrr/ - если так - то ищет в текущей директории, а если с точкой
find . /mnt/sda1/rrr/  - то ищет во всем разделе - хотя указан путь.
find -help  ничего не объясняет.  
 
И где почитать как правильно задавать при поиске каталоги
find /mnt/sda1/rrr/  или   ...ххх/*
 
   2).   Как правильно найти - все файлы - во ВСЕХ поддиректориях - не зная сколько их.
 
   3).   И что то мои знания не помнят значение   !   в такой структуре.  Помню  ||  &&
find . -newermt "2018-01-01" ! -newermt "2020-01-01" -newerct "2018-01-01" ! -newerct "2020-01-01"
 
Тут надо разбираться. Уже все позабыл.
У меня гавкнулся лаптоп и сейчас старый комп,  где простой Linux без Manual.
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1815 | Зарегистр. 04-09-2015 | Отправлено: 04:32 11-12-2020 | Исправлено: alex52mail, 04:53 11-12-2020
Mavrikii

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

Цитата:
1).    Как ее убрать?

она не мешает. точка говорит о директории в которой находитесь.
я для этого и писал вам - сначала переходим в нужную директорию.
для это cd и указан первой командой.
 
cd /корневая_папка_в_которой_ищем_файлы
a path2 - путь к корневой папке, из которой нужно брать файлы для замены.
 

Цитата:
что то мои знания не помнят значение   !   в такой структуре

Дата больше одной, но не больше другой.

Всего записей: 15597 | Зарегистр. 20-09-2014 | Отправлено: 04:44 11-12-2020 | Исправлено: Mavrikii, 04:55 11-12-2020
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
У меня - при исполнении этого скрипта пишет  - не могу найти файл и на экране видно  - что в путь /path2{} вставлена эта точка типа  /mnt/sda1/rrr/./xxxx  
Естественно - такого файла нет.
С нужными  /  разобраться просто - а вот что делать с этой точкой?
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1815 | Зарегистр. 04-09-2015 | Отправлено: 05:02 11-12-2020 | Исправлено: alex52mail, 05:08 11-12-2020
Mavrikii

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

Цитата:
 и на экране видно  - что в путь /path2{} вставлена эта точка типа  /path2./ххх  

где вы у меня в коде видите /path2{} ??
вы сами придумали, что
Цитата:
(/  - тут лишний в конце)

так вот он - не лишний.

Всего записей: 15597 | Зарегистр. 20-09-2014 | Отправлено: 05:06 11-12-2020 | Исправлено: Mavrikii, 05:07 11-12-2020
alex52mail

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Когда как у вас  /path2/{}  - то получается типа /mnt/sda1/rrr/./xxxx и файл не находится.
Убрал / с  /path2{} получается /mnt/sda1/rrr./xxxx
 
Все равно точка лишняя в новом пути. Ее же  не должно быть в новом пути. Это же не текущая директория.
Или искать другую причину почему не находится файл.
 
Удачи.

----------
Везде трудно первые 15 лет, потом легче.
Все проблемы имеют ПРОСТОЕ решение
Ты начальник я дурак я начальник ты дурак. Но хуже дурака дурак с инициативой.

Всего записей: 1815 | Зарегистр. 04-09-2015 | Отправлено: 05:15 11-12-2020 | Исправлено: alex52mail, 05:20 11-12-2020
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум 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