Да,точно. Извиняюсь, я такими "математическими" конструкциями не пользуюсь, поэтому написал первое что пришло в голову, а пришло вот это
bash, несколько вопросов
Модераторы: /dev/random, Модераторы разделов
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
Да,точно. Извиняюсь, я такими "математическими" конструкциями не пользуюсь, поэтому написал первое что пришло в голову, а пришло вот это
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: bash, несколько вопросов
А почему оно не рекомендуется, я и сам, к слову, не знаю(diesel @ Oct 22 2006, в 04:05) писал(а):Да,точно. Извиняюсь, я такими "математическими" конструкциями не пользуюсь, поэтому написал первое что пришло в голову, а пришло вот это
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
ety
- Сообщения: 358
- ОС: Linux
Re: bash, несколько вопросов
в csh работает, но там свой синтаксис, и для циклов вроде 'for((i=10; i<20; i++)) do echo $i; done' есть, хотел кстати узнать о ее портабельности, вроде на sh работает.
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
ety писал(а): ↑23.10.2006 21:26
в csh работает, но там свой синтаксис, и для циклов вроде 'for((i=10; i<20; i++)) do echo $i; done' есть, хотел кстати узнать о ее портабельности, вроде на sh работает.
а у вас sh не есть симлинк на что-нить?
-
ety
- Сообщения: 358
- ОС: Linux
Re: bash, несколько вопросов
diesel писал(а): ↑23.10.2006 21:31ety писал(а): ↑23.10.2006 21:26
в csh работает, но там свой синтаксис, и для циклов вроде 'for((i=10; i<20; i++)) do echo $i; done' есть, хотел кстати узнать о ее портабельности, вроде на sh работает.
а у вас sh не есть симлинк на что-нить?про фрю не знаю - в линуксе часто /bin/sh - симлинк на /bin/bash(Debian,SuSE)
агамсь, они зачем-то сделали симлинком. но в csh вроде можно извратится и за-aliasить while в классический for(i=10; i<20; i++)
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: bash, несколько вопросов
но, в принципе, тот же bash, в случае вызова с такого симлинка, должен вести себя аки чистый sh.(diesel @ Oct 23 2006, в 20:31) писал(а):в линуксе часто /bin/sh - симлинк на /bin/bash
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: bash, несколько вопросов
Должен-то должен, но на практике я уже видел как минимум один момент, который bash понимает, а "чистый sh" понимать, по идее, не обязан, и тот же dash, к примеру, будучи вызван как /bin/sh таки да не понимает.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
n2j2r
- Сообщения: 494
- Статус: najar
Re: bash, несколько вопросов
подскажите, пожалйста, как закомментировать определенную строку в файле.
Что-то на ум ничего дельного не приходит...
спасибо.
Что-то на ум ничего дельного не приходит...
спасибо.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: bash, несколько вопросов
n2j2r
по номеру строки:
по номеру строки:
по подстроке:sed -i -e 'номер_строки s/^/#/' файл
sed -i -e 's/\(.*подстрока.*\)/#\1/' файл
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
n2j2r
- Сообщения: 494
- Статус: najar
Re: bash, несколько вопросов
sash-kan
большое спасибо.
большое спасибо.
-
lexus3d
- Сообщения: 172
Re: bash, несколько вопросов
подскажите пажалста как из строки вида:
получить строку вида:
Код: Выделить всё
/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)получить строку вида:
Код: Выделить всё
/dev/sda1Gentoo 2007.0 / 2.6.19-r5 / Gnome
"Всё в этом мире относительно..." (с)
"Всё в этом мире относительно..." (с)
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
awk '{print $1}' /etc/fstab
echo '/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)'|awk '{print $1}'
echo '/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)'|cut -d' ' -f1
echo '/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)'|awk '{print $1}'
echo '/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)'|cut -d' ' -f1
-
lexus3d
- Сообщения: 172
Re: bash, несколько вопросов
а если просто sda1
ЗЫ не пинайте сильно
ЗЫ не пинайте сильно
Gentoo 2007.0 / 2.6.19-r5 / Gnome
"Всё в этом мире относительно..." (с)
"Всё в этом мире относительно..." (с)
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
гм по разному можно. зависит от того что вам надо 
echo '/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)'|awk '{print $1}'|awk -F/ '{print $3}'
echo '/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)'|awk '{ sub("/dev/","",$1); print $1;}'
echo '/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)'|awk '{print $1}'|awk -F/ '{print $3}'
echo '/dev/sda1 on /mnt/usb type vfat (rw,nosuid,nodev,umask=000,codepage=866)'|awk '{ sub("/dev/","",$1); print $1;}'
-
lexus3d
- Сообщения: 172
Re: bash, несколько вопросов
огромное спасибо, дальше думаю разберусь
Gentoo 2007.0 / 2.6.19-r5 / Gnome
"Всё в этом мире относительно..." (с)
"Всё в этом мире относительно..." (с)
-
n2j2r
- Сообщения: 494
- Статус: najar
Re: bash, несколько вопросов
а как правильно в bash скрипте правильно передать переменную awk?
в примере:
спасибо
в примере:
Код: Выделить всё
read val
cat $file | awk '/$val/{print}'спасибо
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
Из man awk:
-v var=value assigns value to program variable var.
-
n2j2r
- Сообщения: 494
- Статус: najar
Re: bash, несколько вопросов
diesel
там так же сказано
и как мне в BEGIN все это сделать/это ж фактически до выполнения работает?
там так же сказано
Код: Выделить всё
Such variable values are available to the BEGIN block of an AWK program.и как мне в BEGIN все это сделать/это ж фактически до выполнения работает?
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
n2j2r писал(а): ↑13.11.2006 13:42diesel
там так же сказано
Код: Выделить всё
Such variable values are available to the BEGIN block of an AWK program.
и как мне в BEGIN все это сделать/это ж фактически до выполнения работает?
Вообще это значит что эти переменные становятся доступными в BEGIN-блоке
как вариант:
awk "BEGIN{print \"$LANG\";}" напечатает значение системной переменной $LANG
можно даже вот так:
echo test|awk "BEGIN{a=\"$LANG\"};"'{print a}'
-
n2j2r
- Сообщения: 494
- Статус: najar
Re: bash, несколько вопросов
(diesel @ Nov 13 2006, в 16:00) писал(а):Вообще это значит что эти переменные становятся доступными в BEGIN-блоке
Код: Выделить всё
They are executed before any of the input is read.так вот. мне то как раз не надо выводить переменную.Мне нужно использовать ее как шаблон для вывода совпавших строк из файла.
Вопрос то вобщем такой/ как затолкать жту переменную в pattern???
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
http://www.gnu.org/software/gawk/manual/ht...-Variables.html - вот тут пример есть
того как затолкать переменную в паттерн
ровно так же как и в BEGIN

BEGIN блок перед тем как начинается обработка текста который на входе. Переменные которые вы передаете в -v доступны уже в BEGIN-блоке(и во всем скрипте есс-но) - что тут непонятного?
BEGIN блок перед тем как начинается обработка текста который на входе. Переменные которые вы передаете в -v доступны уже в BEGIN-блоке(и во всем скрипте есс-но) - что тут непонятного?
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: bash, несколько вопросов
в примере:
дело в том, что одинарные кавычки являются экранирующими. и внутри них, в частности, не происходит подстановка переменных. в данном случае можно их просто заменить на двойные.
универсальнее вынести нужные переменные из кавычек:
p.s. ага, внимательнее надо быть (:
в преведенной diesel-ем ссылке как раз, в частности, и про это самое.
переменная $val определена несколькимм строчками выше. я правильно понял?(n2j2r @ Nov 13 2006, в 12:26) писал(а):cat $file | awk '/$val/{print}'
дело в том, что одинарные кавычки являются экранирующими. и внутри них, в частности, не происходит подстановка переменных. в данном случае можно их просто заменить на двойные.
универсальнее вынести нужные переменные из кавычек:
универсальнее в том плане, что подстановка внешних для awk переменных не должна мешать употреблению его собственных внутренних переменных.awk '/'$val'/{print}'
p.s. ага, внимательнее надо быть (:
в преведенной diesel-ем ссылке как раз, в частности, и про это самое.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Pinea Gofman
- Сообщения: 4
- ОС: MacOSX
Re: bash, несколько вопросов
можно и мне вопросик про sed
почему вот эта строчка выполняется правильно
а такой вариант (вроде логичный и правильный) не работает
и как бы я не старался выполнить задачу одной командой sed
ничего не выходит
почему вот эта строчка выполняется правильно
Код: Выделить всё
echo "[tT][iI][fF]" | sed 's/\]//g' | sed 's/[\[A-Z]//g'а такой вариант (вроде логичный и правильный) не работает
Код: Выделить всё
echo "[tT][iI][fF]" | sed 's/[\[A-Z]\]//g'и как бы я не старался выполнить задачу одной командой sed
ничего не выходит
Не фэйка для а водки ради!!!
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: bash, несколько вопросов
sed 's/[][A-Z]//g'
-
Pinea Gofman
- Сообщения: 4
- ОС: MacOSX
Re: bash, несколько вопросов
Не фэйка для а водки ради!!!
-
Malcolm
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
Суть вопроса:
в /etc/rc.conf есть строка:
MODULES=()
надо заменить её типа:
MODULES=(nvram i810 etc module)
но что-то не получается. Что я неправильно делаю?
в /etc/rc.conf есть строка:
MODULES=()
надо заменить её типа:
MODULES=(nvram i810 etc module)
но что-то не получается. Что я неправильно делаю?
Код: Выделить всё
MODULES="nvram i810 speedstep_centrino cpufreq_conservative ibm_acpi ppp-generic capability e100"
sed -i -e 's/\(^MODULES.*\)/MODULES=\('$MODULES'\)/' /etc/rc.confWin7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
Бодрый и Веселый
- Сообщения: 66
- ОС: What?
Re: bash, несколько вопросов
Можно так:
Код: Выделить всё
MODULES="a b c"; echo "MODULES=(e f g)" | sed -e "s/^MODULES=(.*)$/MODULES=(${MODULES})/"-
BaBL
- Сообщения: 767
- ОС: Debian GNU/Linux SID
Re: bash, несколько вопросов
А я, вот, не придумал как можно простенько проверить наличие установленного приложения. locate, по идее, не везде есть, а вот через test -x наличие нужного бинарника как-то не смог проверить. Возможно просто где-то ошибся в выражении. Проверить желательно весь PATH
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
-
BaBL
- Сообщения: 767
- ОС: Debian GNU/Linux SID