Выбор строки, подсчет, Bash

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

sedikpoll
Сообщения: 100

Выбор строки, подсчет, Bash

Сообщение sedikpoll »

Хочу изучать Bash, поставил перед собой задачи, и так.

Код: Выделить всё

wewewqewe sdv 235676
sdsdsdsd ssfb 7876912
jjwAaASDD qldzd 12345943
sadsrfvbvbv 343
vbedfcf svmnf 46660000
adffrfaff 546434367


1. Хочу вывести третий столбик, отсортировав числа, делаю

Код: Выделить всё

cut -d' ' -f 3 file.txt | tsort | sort -n

Правильно ли это? Не знал как избавится от пустых строк, поэтому использовал tsort. Без tsort появляются две пустых строки.

Возможно как то под конец вывести сумму этих чисел?

2. Вывести только числа, делаю

Код: Выделить всё

grep '[0-9]' file.txt

Т.е. он выводит мне только строки содержащие числа, а как вывести только числа, т.е.

Код: Выделить всё

235676
7876912
12345943
...


Часто говорят "На чистом баше", как это понять? Ведь мы всеравно используем find, grep. cut и т.д. это ведь не чистый баш.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Выбор строки, подсчет, Bash

Сообщение diesel »

sedikpoll писал(а):
24.04.2010 23:48
Часто говорят "На чистом баше", как это понять? Ведь мы всеравно используем find, grep. cut и т.д. это ведь не чистый баш.

"На чистом bash'е", означает что использовать надо только собственно bash, без левых программ, в том числе без find, grep, cut etc.

например вывести третий столбик если есть:

Код: Выделить всё

while read i j k; do [ $k ] && echo $k; done < /path/to/file

(щас еще десять вариантов предложат)
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Выбор строки, подсчет, Bash

Сообщение watashiwa_daredeska »

sedikpoll писал(а):
24.04.2010 23:48
Правильно ли это? Не знал как избавится от пустых строк, поэтому использовал tsort.
Ни за что бы не догадался. Гораздо понятнее было бы что-нибудь вроде sed -r '/^\s*$/d'

sedikpoll писал(а):
24.04.2010 23:48
Возможно как то под конец вывести сумму этих чисел?
Я обычно делаю так: sed '1s/^/0 /;s/$/ +/;$s/$/ p/' | dc (числа на stdin по одному на строку).

sedikpoll писал(а):
24.04.2010 23:48
как вывести только числа
grep -o '[0-9]\+' или egrep -o '[0-9]+'
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Выбор строки, подсчет, Bash

Сообщение sash-kan »

сложение:
watashiwa_darede... писал(а):
25.04.2010 00:03
sed '1s/^/0 /;s/$/ +/;$s/$/ p/' | dc
sed '$!s/$/+/' | xargs | bc
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Выбор строки, подсчет, Bash

Сообщение drBatty »

sedikpoll писал(а):
24.04.2010 23:48
1. Хочу вывести третий столбик, отсортировав числа, делаю

Shell

$ sed -r 's/.*\s(\S+)$/\1/' zc.txt 235676 7876912 12345943 343 46660000 546434367



sedikpoll писал(а):
24.04.2010 23:48
Возможно как то под конец вывести сумму этих чисел?

Shell

$ sed -rn 's/.*\s(\S+)$/\1 +/;H;${g;s/\n/ /g;s/$/ 0/;p}' zc.txt 235676 + 7876912 + 12345943 + 343 + 46660000 + 546434367 + 0

а теперь посчитаем:

Shell

$ sed -rn 's/.*\s(\S+)$/\1 +/;H;${g;s/\n/ /g;s/$/ 0/;p}' zc.txt | bc 613553241


sedikpoll писал(а):
24.04.2010 23:48
Часто говорят "На чистом баше", как это понять? Ведь мы всеравно используем find, grep. cut и т.д. это ведь не чистый баш.

ага. не чистый. на чистом как минимум в 20 раз медленнее. Используйте всё выше перечисленное, ну и специальные ЯП - как то, sed, perl, питон, и прочее...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Выбор строки, подсчет, Bash

Сообщение drBatty »

sash-kan писал(а):
25.04.2010 00:25
sed '$!s/$/+/' | xargs | bc

злые вы все - мало кто поймёт с непривычки, что bc(dc) это просто калькулятор... ИМХО.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
sedikpoll
Сообщения: 100

Re: Выбор строки, подсчет, Bash

Сообщение sedikpoll »

Хм, мне казалось что на чистом должно быть наоборот быстрей, т.к. все происходит без каких либо вмешательств.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Выбор строки, подсчет, Bash

Сообщение sash-kan »

sedikpoll писал(а):
24.04.2010 23:48
Хочу изучать Bash
вообще, прекрасная идея.
вот только то, что вы дальше пишите, и в чём так радостно мы бросились вам помогать, к bash-у никакого отношения не имеет.
максимум, что тут есть от bash-а — это интепретация команд. это должен уметь любой shell.
но у bash-а, как и у всех остальных shell-ов, это не основное умение.
основное — это интерактивная работа в командной строке.

p.s. это я в плане: назовём вещи своими именами.

sedikpoll писал(а):
25.04.2010 00:34
Хм, мне казалось что на чистом должно быть наоборот быстрей, т.к. все происходит без каких либо вмешательств.
bash, как и любой другой shell, вовсе не предназначен для того, чтобы обрабатывать данные.
да, большую часть из того, про что вы спрашивали, с натугой, bash сможет осуществить самостоятельно.
но это будет длинно и совсем не так элегантно.
не для этого предназначен shell.

p.s. по поводу «быстрей». да, возможно, где-то вы пару процессорных тактов сэкономите (в большинстве случаев, скорее всего, потеряете), но _вашего_ времени уйдёт значительно больше.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
sedikpoll
Сообщения: 100

Re: Выбор строки, подсчет, Bash

Сообщение sedikpoll »

Но ведь разве не лучше писать на чистом баше, ведь тогда мы получаем можно сказать переносной код т.е. он будет работать везде ( где есть баш). Вдруг у нас не окажеться где то sed, или будет закрыт доступ.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Выбор строки, подсчет, Bash

Сообщение sash-kan »

sedikpoll писал(а):
25.04.2010 00:48
Но ведь разве не лучше писать на чистом баше, ведь тогда мы получаем можно сказать переносной код т.е. он будет работать везде ( где есть баш). Вдруг у нас не окажеться где то sed, или будет закрыт доступ.
для «писать» есть редакторы.
а для «исполнять», да ещё и переносимый код, интерпретаторы shell-ов совершенно не подходят.
для этого есть огромное количество других, часто довольно переносимых, интерпретаторов.

>Вдруг у нас не окажеться где то sed

проще встретить *nix-систему, в которой нет bash-а, нежели такую, в которой нет хоть какой-нибудь из реализаций sed-а.

p.s. ещё раз повторю: сила shell-ов не исчерпывается и вовсе не заключается во встроенном в них интерпретаторе. можете рассматривать это как «приятное дополнение».
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Выбор строки, подсчет, Bash

Сообщение drBatty »

sedikpoll писал(а):
25.04.2010 00:48
Вдруг у нас не окажеться где то sed

в таком случае drBatty убьёт сипяапстену (:
sed даже в венде есть. А в UNIX она уже дольше чем я на этом свете живёт.

sash-kan писал(а):
25.04.2010 01:00
для этого есть огромное количество других, часто довольно переносимых, интерпретаторов.

...например sed
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Выбор строки, подсчет, Bash

Сообщение drBatty »

sedikpoll писал(а):
25.04.2010 00:34
Хм, мне казалось что на чистом должно быть наоборот быстрей, т.к. все происходит без каких либо вмешательств.

вот то, что у вас в первом посте - это вовсе не задача shell - это работа с текстом. А работу с текстом, будьте любезны, оставьте текстовым редакторам - не нравится править ручками как в Word/Vim/notepad - юзайте sed. А shell тут как бы и совсем не при чём. Да, в shell тоже есть команды для обработки строк, в т.ч. и для работы с RE, вот только несут они вспомогательную роль, и на их удобство и быстродействие никто не обращает внимание. Вот если-бы вы в первом посте озадачили нас например задачей поиска файлов, которые моложе заданного, и длиннее 123Мб, и при этом принадлежат васе - вам бы никто не посоветовал shell - все бы отправили читать вас доку по find, но может я-бы ещё порекомендовал посмотреть в сторону ls... А в shell тоже есть и циклы для перебора каталогов и файлов, и проверки типа файла, и даже проверки прав доступа. Вот только обычно используют find, т.к. она именно для того и сделана.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Выбор строки, подсчет, Bash

Сообщение sash-kan »

резюмируя, вам, уважаемый sedikpoll, скорее всего следует интересоваться не bash-ем как таковым, а gnu-, bsd- и прочими утилитами.
вот «на» них как раз и очень хорошо «пишутся» всякие переносимые скрипты.
а какой именно интерпретатор будет их вызывать (и, следовательно, какой синтаксис вы примените для их связки), это уже дело десятое.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Выбор строки, подсчет, Bash

Сообщение drBatty »

sash-kan писал(а):
25.04.2010 01:17
а какой именно интерпретатор будет их вызывать (и, следовательно, какой синтаксис вы примените для их связки), это уже дело десятое.

я только хотел добавить, что вызывать утилиты можно не только в shell-скриптах, но и в любых других (например на той-же sed). Т.е. можно писать скрипты на (к примеру) sed, которые используют внутри себя некоторые другие утилиты

(хотя обычно, вызов других утилит реализован именно через shell).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Выбор строки, подсчет, Bash

Сообщение diesel »

Есть одно "но" к тому что сказано выше. Действительно, маловероятно что Вы окажетесь в системе, где кроме bash никаких других полезных утилит недоступно(более вероятно - система где shell - не bash, а awk/sed/и прочие утилиты - не от ГНУ - тогда, например, часть примеров, которые можно найти а том числе и в этом разделе, может не работать), и shell действительно большей части средство для склейки - чем строительный материал. Тем не мнее, решение задач на "чистом шелле", если хотите освоить работу в командной строке, или научится писать скрипты - полезно.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Выбор строки, подсчет, Bash

Сообщение t.t »

diesel писал(а):
24.04.2010 23:54
например вывести третий столбик если есть:

Код: Выделить всё

while read i j k; do [ $k ] && echo $k; done < /path/to/file

(щас еще десять вариантов предложат)
Кавычки забыл. Если нету, на [ ругнётся.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Выбор строки, подсчет, Bash

Сообщение t.t »

watashiwa_daredeska писал(а):
25.04.2010 00:03
sedikpoll писал(а):
24.04.2010 23:48
Правильно ли это? Не знал как избавится от пустых строк, поэтому использовал tsort.
Ни за что бы не догадался. Гораздо понятнее было бы что-нибудь вроде sed -r '/^\s*$/d'
Гораздо понятнее было бы добавить к cut опцию s:

Код: Выделить всё

$ echo -e 'q w\n\ne r\n'
q w

e r

$ echo -e 'q w\n\ne r\n' | cut -sd\  -f2
w
r


drBatty писал(а):
25.04.2010 00:26
sedikpoll писал(а):
24.04.2010 23:48
1. Хочу вывести третий столбик, отсортировав числа, делаю

Shell

$ sed -r 's/.*\s(\S+)$/\1/' zc.txt 235676 7876912 12345943 343 46660000 546434367


sedikpoll писал(а):
24.04.2010 23:48
Возможно как то под конец вывести сумму этих чисел?

Shell

$ sed -rn 's/.*\s(\S+)$/\1 +/;H;${g;s/\n/ /g;s/$/ 0/;p}' zc.txt 235676 + 7876912 + 12345943 + 343 + 46660000 + 546434367 + 0


а теперь посчитаем:

Shell

$ sed -rn 's/.*\s(\S+)$/\1 +/;H;${g;s/\n/ /g;s/$/ 0/;p}' zc.txt | bc 613553241
"Казалось бы, при чём здесь bash?" (:
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Выбор строки, подсчет, Bash

Сообщение t.t »

diesel писал(а):
25.04.2010 01:26
Тем не мнее, решение задач на "чистом шелле", если хотите освоить работу в командной строке, или научится писать скрипты - полезно.
Спорно. На мой взгляд, подходы, -- а соответственно, и навыки -- работы с "чистым bash" и уже даже хотя бы с bash + coreutils имеют больше различий, нежели сходств. Таким образом, решение задач на "чистом bash" -- штука совершенно не имеющая ничего общего с действительностью.

Скажем, предложенный drBatty вариант (а кто бы сомневался?) с чистым sed и то гораздо ближе к реальности: бизибоксовый sed от "настоящего" отличается либо очень мало, либо совсем никак -- а вот прикрутить bash к некоторым системам с busybox будет достаточно проблематично. Да и жалкое подобие coreutils там тоже как правило есть.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Выбор строки, подсчет, Bash

Сообщение t.t »

sedikpoll писал(а):
24.04.2010 23:48
Хочу изучать Bash, поставил перед собой задачи, и так.
[...]
Часто говорят "На чистом баше", как это понять? Ведь мы всеравно используем find, grep. cut и т.д. это ведь не чистый баш.
Как уже заметили выше, более практичная (не оторванная от жизни) задача -- изучать работу в командной строке (да, см. название раздела (: ), а не bash сам по себе. Собственно, все виденные мною руководства по bash на самом деле рассказывают именно о работе в командной строке в целом -- и о написании shell-скриптов как логическом её продолжении.

Наиболее полное и развёрнутое руководство по этой теме -- Advanced Bash Scripting Guide, многократно упоминавшееся на форуме вообще и в этом разделе в частности, -- на самом деле именно о работе в командной строке (и написании shell-скриптов) и рассказывает. Существует и русский его перевод -- немного устаревший, но вполне пригодный для практического использования. Работа по переводу последней версии была инициирована на этом форуме и сейчас ведётся, но ещё далека до завершения.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Выбор строки, подсчет, Bash

Сообщение drBatty »

t.t писал(а):
25.04.2010 05:28
$ sed -rn 's/.*\s(\S+)$/\1 +/;H;${g;s/\n/ /g;s/$/ 0/;p}' zc.txt | bc

"Казалось бы, при чём здесь bash?" (:

ну я выделил (:

PS:
кстати, ничего смешного: Здесь я обработал данный текст специализированной утилитой (sed), и получил арифметическое выражение. Его я передал другой специализированной утилите(bc). На практике я делаю по другому: у меня sed сама вызывает калькулятор, который и прибавляет выделенное число к сумме для каждой строки. Но это уже не bash...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Выбор строки, подсчет, Bash

Сообщение t.t »

drBatty писал(а):
25.04.2010 09:53
t.t писал(а):
25.04.2010 05:28
$ sed -rn 's/.*\s(\S+)$/\1 +/;H;${g;s/\n/ /g;s/$/ 0/;p}' zc.txt | bc
"Казалось бы, при чём здесь bash?" (:
ну я выделил (:

PS:
кстати, ничего смешного: Здесь я обработал данный текст специализированной утилитой (sed), и получил арифметическое выражение. Его я передал другой специализированной утилите(bc).
Вы меня не совсем верно поняли. Т.е. отчасти верно, но с другой стороны я ещё раз намекул на непрактичность концепции "чистого bash": эта конструкция от него очень далека, хотя реально shell здесь проявляет одно из основных своих полезных свойств.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Выбор строки, подсчет, Bash

Сообщение diesel »

t.t писал(а):
25.04.2010 05:16
diesel писал(а):
24.04.2010 23:54
например вывести третий столбик если есть:

Код: Выделить всё

while read i j k; do [ $k ] && echo $k; done < /path/to/file

(щас еще десять вариантов предложат)
Кавычки забыл. Если нету, на [ ругнётся.

не ругнется:

Код: Выделить всё

diesel@heups:~$ cat 3
wewewqewe sdv 235676
sdsdsdsd ssfb 7876912
jjwAaASDD qldzd 12345943
sadsrfvbvbv 343
vbedfcf svmnf 46660000
adffrfaff 546434367

diesel@heups:~$ while read i j k; do [ $k ] && echo $k; done < 3
235676
7876912
12345943
46660000


Потому что:

Код: Выделить всё

diesel@heups:~$ [ ] || echo aaaa
aaaa


ругается когда получается [ == "smth" ], например
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Выбор строки, подсчет, Bash

Сообщение diesel »

t.t писал(а):
25.04.2010 05:39
diesel писал(а):
25.04.2010 01:26
Тем не мнее, решение задач на "чистом шелле", если хотите освоить работу в командной строке, или научится писать скрипты - полезно.
Спорно. На мой взгляд, подходы, -- а соответственно, и навыки -- работы с "чистым bash" и уже даже хотя бы с bash + coreutils имеют больше различий, нежели сходств. Таким образом, решение задач на "чистом bash" -- штука совершенно не имеющая ничего общего с действительностью.

что есть действительность? :) Например, в предложенных топикстартером задачах легче использовать что-нить другое, топикстартер вобщем-то сам привел вполне работающие решения, только в процессе обучения, неплохо познакомиться и с while read; да и с for, и с тем как это все можно применить. "Как это обычно делают?" - это всего один вопрос, есть и другой "Как это в принципе можно сделать"



sedikpoll писал(а):
24.04.2010 23:48
2. Вывести только числа, делаю

Код: Выделить всё

grep '[0-9]' file.txt

Т.е. он выводит мне только строки содержащие числа, а как вывести только числа, т.е.

Код: Выделить всё

235676
7876912
12345943
...

Код: Выделить всё

grep -o  '[0-9]*' file.txt

в этом случае.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5404
ОС: Gentoo

Re: Выбор строки, подсчет, Bash

Сообщение /dev/random »

diesel писал(а):
25.04.2010 13:11
ругается когда получается [ == "smth" ], например

А если
k="== smth"
? ;)
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Выбор строки, подсчет, Bash

Сообщение diesel »

/dev/random писал(а):
25.04.2010 14:03
diesel писал(а):
25.04.2010 13:11
ругается когда получается [ == "smth" ], например

А если
k="== smth"
? ;)

по условию задачи у нас два или три столбика разделенных пробелами.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Выбор строки, подсчет, Bash

Сообщение t.t »

diesel писал(а):
25.04.2010 13:11
t.t писал(а):
25.04.2010 05:16
diesel писал(а):
24.04.2010 23:54
например вывести третий столбик если есть:

Код: Выделить всё

while read i j k; do [ $k ] && echo $k; done < /path/to/file
(щас еще десять вариантов предложат)
Кавычки забыл. Если нету, на [ ругнётся.
не ругнется:

Код: Выделить всё

diesel@heups:~$ cat 3
wewewqewe sdv 235676
sdsdsdsd ssfb 7876912
jjwAaASDD qldzd 12345943
sadsrfvbvbv 343
vbedfcf svmnf 46660000
adffrfaff 546434367

diesel@heups:~$ while read i j k; do [ $k ] && echo $k; done < 3
235676
7876912
12345943
46660000


Потому что:

Код: Выделить всё

diesel@heups:~$ [ ] || echo aaaa
aaaa


ругается когда получается [ == "smth" ], например
Да, был неправ, спасибо.

diesel писал(а):
25.04.2010 13:34
t.t писал(а):
25.04.2010 05:39
diesel писал(а):
25.04.2010 01:26
Тем не мнее, решение задач на "чистом шелле", если хотите освоить работу в командной строке, или научится писать скрипты - полезно.
Спорно. На мой взгляд, подходы, -- а соответственно, и навыки -- работы с "чистым bash" и уже даже хотя бы с bash + coreutils имеют больше различий, нежели сходств. Таким образом, решение задач на "чистом bash" -- штука совершенно не имеющая ничего общего с действительностью.
что есть действительность? :) Например, в предложенных топикстартером задачах легче использовать что-нить другое, топикстартер вобщем-то сам привел вполне работающие решения, только в процессе обучения, неплохо познакомиться и с while read; да и с for, и с тем как это все можно применить. "Как это обычно делают?" - это всего один вопрос, есть и другой "Как это в принципе можно сделать"
Я ведь не сказал "неверно" -- я сказал "спорно". (: Конечно, решения на чистом bash тоже могут быть полезны для обучения -- но только до какого-то уровня; дальше начнётся излишняя усложнённость и путаница.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: