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

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

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

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

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

 

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

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

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

Всего записей: 665 | Зарегистр. 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.

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

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

Всего записей: 665 | Зарегистр. 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.

Всего записей: 6333 | Зарегистр. 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.

Всего записей: 6333 | Зарегистр. 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техник и любитель Кошек

Всего записей: 16901 | Зарегистр. 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 - так вначале выводятся имена каталогов, они не нужны.

Всего записей: 288 | Зарегистр. 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'


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

Всего записей: 6205 | Зарегистр. 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.

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

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

Всего записей: 288 | Зарегистр. 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 ?

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



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

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

Всего записей: 9272 | Зарегистр. 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
и т.д.
 
надо заменять данные в последней ячейке "имя" на реальное имя.

Всего записей: 288 | Зарегистр. 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> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 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


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

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



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

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

Всего записей: 9272 | Зарегистр. 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 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135

Компьютерный форум 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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru