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


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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

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

 

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

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 18:51 16-05-2008 | Исправлено: ASE_DAG, 22:02 01-03-2017
H4rDc0r3

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

Всего записей: 10 | Зарегистр. 19-09-2010 | Отправлено: 21:24 19-09-2010 | Исправлено: H4rDc0r3, 21:48 19-09-2010
Maximus777

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

Код:
if (("$a" > 30)); then

а в таком нет:

Код:
if ["$a" -gt 30]; then

Как надо правильно сравнивать?

Всего записей: 641 | Зарегистр. 27-07-2007 | Отправлено: 22:13 10-10-2010
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
сравнивать так и надо - вот статья
после [ нужен пробел! - иначе он считает что это 1 выражение, а на самом деле это начало оператора test...
 
Добавлено:
к тому же прочтите, это - там 3 части. ссылка

----------
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.

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 22:22 10-10-2010
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
нижайший поклон. Обе статьи просто великолепные!

Всего записей: 641 | Зарегистр. 27-07-2007 | Отправлено: 09:00 11-10-2010
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mint85
точно не скажу, но в общем смысл такой
Код:
login='login'
pwd='password'
AUTH=`curl -s -F"mode=login" -F"password=${pwd}" -F"username=${login}" -F"skip=1" "http://member.21sextury.com/login" -с "cookie.txt"`
wget --load-cookies=cookie.txt "http://l.at.video.member.21sextury.com/video/movie/20/3631/v3631-499.mp4?SID=782874163209877"
SID скорее всего надо будет определять как-то... ну в общем надо его пилить под конкретный сайт.
 
А вообще у меня есть 2 предложения:
1 - заканчивайте смотреть порнуху.
2 - на кой хер вам wget сдался? качайте через аддон для FF - FVD. И будет вам счастье...

----------
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.

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 22:01 18-10-2010 | Исправлено: Alukardd, 22:19 18-10-2010
mint85

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

Цитата:
Mint85
точно не скажу, но в общем смысл такой
Код:
login='login'
pwd='password'
AUTH=`curl -s -F"mode=login" -F"password=${pwd}" -F"username=${login}" -F"skip=1" "http://member.21sextury.com/login"`
wget --load-cookies=cokie.txt "http://l.at.video.member.21sextury.com/video/movie/20/3631/v3631-499.mp4?SID=782874163209877"  

 
спасибо =) но куда это вписать ?

Всего записей: 10 | Зарегистр. 18-10-2010 | Отправлено: 22:07 18-10-2010
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mint85
Цитата:
спасибо =) но куда это вписать ?
вы прочитали послекодовые мои коменты?
вы знаете что такое linux и откуда взялась утилита wget?
 
этот скрипт надо еще дорабатывать напильником!!! так оно не заработает - даю 99%.

----------
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.

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 22:11 18-10-2010 | Исправлено: Alukardd, 22:18 18-10-2010
mint85

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну знаюю
мне сайт надо пополнить  
а с wgetom удобнее я так делал многие сайты
просто именно этот сайт с проблемой

Всего записей: 10 | Зарегистр. 18-10-2010 | Отправлено: 22:26 18-10-2010
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mint85
Цитата:
мне сайт надо пополнить  
Мдааа, достойное пополнение
 


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 16317 | Зарегистр. 13-06-2007 | Отправлено: 23:45 18-10-2010
mint85

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

Цитата:
Мдааа, достойное пополнение
 
гммм даа

Всего записей: 10 | Зарегистр. 18-10-2010 | Отправлено: 00:31 19-10-2010
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Снова обращаюсь за помощью.
Надо сделать вывод файлов в каталоге в файл без имен каталогов, в которых находятся эти файлы.
Т.е нужен обычный список в котором будут имена файлов.
 
Вот что делал:
1. find /path -type f > /export.txt - такой вариант устроил бы, если бы убрать путь, при таком виде в файл записывается полный путь к файлу.
2. cd /path; ls -R > /export.txt - так вначале выводятся имена каталогов, они не нужны.

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 18:50 14-12-2010
urodliv



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

Цитата:
1. find /path -type f > /export.txt - такой вариант устроил бы, если бы убрать путь, при таком виде в файл записывается полный путь к файлу.


Код:
find /path -type f -fprintf name_of_file '%f\n'


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

Всего записей: 5672 | Зарегистр. 29-04-2009 | Отправлено: 19:46 14-12-2010
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
а можно и поизвращаться... ^_^
Код:
ls -l /path | grep ^- | awk '{ for (i=8;i<=NF;i++) printf $i FS; print ""}'>listoffiles.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.

Всего записей: 6153 | Зарегистр. 28-08-2008 | Отправлено: 20:18 14-12-2010
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сделал так:
find /path -type f -printf "%f\n" | sort -n > export.txt
Спасибо за помощь!

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 21:34 14-12-2010
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжаем начатое 4 постами раньше.
В табличном редакторе (Excel или OO) человек формирует небольшой список из нескольких ячеек и в последней ячейке пишет начальную часть физического файла, например 0001, а сам файл - 0001_name.ext. Конечным результатом работы человека является csv файл на выходе.
Задача - заменить цифровые значения реальными именами из txt файла, который был получен в результате предыдущего поста.
Как я вижу решение:
Найти в 1 строке csv файла цифровое значение, найти это значение в export.txt и заменить его на полное. Перейти на 2 строку и повторить процедуру и так до последней строки. Реально ли такое сделать в bash ?

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 18:06 24-12-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<Не туда>.
 
Добавлено:
digital422
Без примера плохо понятно. Киньте сюда оба файла.

----------
Dmitry Alexandrov <321942@gmail.com>

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 18:15 24-12-2010 | Исправлено: ASE_DAG, 18:16 24-12-2010
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет пункта по вставке файла. Вот примерный финальный csv:
 
"дата","источник","исполнитель","имя"
"23.12.2010","hdd","asasasa","0001"
"23.12.2010","hdd","dsdsdsd","0002"
"23.12.2010","hdd","asasasa","0003"
"23.12.2010","hdd","dsdsdsd","0004"
"23.12.2010","hdd","asasasa","0005"
"23.12.2010","hdd","dsdsdsd","0006"
"23.12.2010","hdd","asasasa","0007"
 
вот реальное название файла для 2 строки: 0001_files.jpg
вот реальное название файла для 3 строки: 0002_files.jpg
вот реальное название файла для 4 строки: 0003_files.jpg
и т.д.
 
надо заменять данные в последней ячейке "имя" на реальное имя.

Всего записей: 259 | Зарегистр. 19-04-2003 | Отправлено: 19:55 24-12-2010 | Исправлено: digital422, 19:57 24-12-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
Вот вам немного быдлокода: :)
 
echo имя | cat - 422.ls | paste -d ',' 422.csv - | awk -F ',' '{print $1","$2","$3",""\""$5"\""}' -
 
А вообще, надо поискать что-нибудь для работы с csv.

----------
Dmitry Alexandrov <321942@gmail.com>

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 21:39 24-12-2010
urodliv



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

Код:
awk -F\" 'NR!=1 {print("\""$2"\",\""$4"\",\""$6"\",\""$8"_files.jpg\"")}' 1.csv


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

Всего записей: 5672 | Зарегистр. 29-04-2009 | Отправлено: 21:43 24-12-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urodliv
Если 0001 всегда порождает 0001_files.jpg, то конечно. Но как я понял из прошлых постов, это не так.
 
P.S. А почему в качестве разделителя записей у вас кавычка?

----------
Dmitry Alexandrov <321942@gmail.com>

Всего записей: 9107 | Зарегистр. 12-05-2005 | Отправлено: 22:10 24-12-2010
Открыть новую тему     Написать ответ в эту тему

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

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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2017

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru