Имеется скрипт sns с содержанием:
#! /bin/bash
sensors | fgrep -f ./bin/sens
где sensors - команда, возвращающая список параметров железа,
а sens - файл, где указаны первые слова строк этого списка, но не всех,
а тех, которые меня интересуют.
Все прекрасно работало до какого-то момента. Теперь по команде sns
мне выводится снова весь список, т.е. вместо
sensors | fgrep -f ./bin/sens
срабатывает просто sensors.
Делаю вывод, что fgrep не работает. При подстановке grep -F вместо fgrep
вообще ничего не происходит.
Если понятно, что я написал, прокомментируйте, пожалуйста, ситуевину.
странности fgrep (fgrep не работает)
Модераторы: /dev/random, Модераторы разделов
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: странности fgrep
вероятнее всего, вы слишком «широкий» regexp употребили в /bin/sens.
p.s. кстати, каталог /bin — очень неподходящее место для хранения подобной информации.
p.s. кстати, каталог /bin — очень неподходящее место для хранения подобной информации.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 586
- Статус: -
Re: странности fgrep
wlad_O писал(а): ↑09.11.2010 23:03Имеется скрипт sns с содержанием:
#! /bin/bash
sensors | fgrep -f ./bin/sens
где sensors - команда, возвращающая список параметров железа,
а sens - файл, где указаны первые слова строк этого списка, но не всех,
а тех, которые меня интересуют.
Все прекрасно работало до какого-то момента. Теперь по команде sns
мне выводится снова весь список, т.е. вместо
sensors | fgrep -f ./bin/sens
срабатывает просто sensors.
Делаю вывод, что fgrep не работает. При подстановке grep -F вместо fgrep
вообще ничего не происходит.
Если понятно, что я написал, прокомментируйте, пожалуйста, ситуевину.
Попробуйте
- запустить только с одним regexp-ом,
- передать regexp через командную строку,
- посмотрите возвращаемое значение,
- попробуйте то же самое, но просто с grep (и даже с sed).
И, наконец, покажите сами файлы -)
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: странности fgrep
Господа, какие, нафиг, регекспы? Это ж fgrep. :)
Можно проверить, что на самом деле пытается и исполняет bash. Для этого нужно заменить shebang на:#!/bin/bash -x
Shit happens. Как уже посоветовали, проверьте работу fgrep на элементарных примерах:
localhost
$ echo 1 | fgrep 1
1
$ echo 1 | fgrep 2
$ echo 1 | fgrep -f <(echo 1)
1
$ echo 1 | fgrep -f <(echo 2)
Можно проверить, что на самом деле пытается и исполняет bash. Для этого нужно заменить shebang на:#!/bin/bash -x
Мои розовые очки
-
- Сообщения: 44
Re: странности fgrep
watashiwa_daredeska писал(а): ↑10.11.2010 11:17Господа, какие, нафиг, регекспы? Это ж fgrep.
Shit happens. Как уже посоветовали, проверьте работу fgrep на элементарных примерах:
Можно проверить, что на самом деле пытается и исполняет bash. Для этого нужно заменить shebang на:#!/bin/bash -x
Проверил, все как в Вашем примере. До этого проверял немного по-другому, тоже работало.
Даю команду sns - Shit happens, как Вы выражаетесь.
Заменил shebang - не помогает. Мало того, в своем файле sens убрал все и оставил всего одну строку и перевод строки. Не помогло

С уважением, Влад
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: странности fgrep
да хоть мумиями их обзови. суть-то не меняется:
Shell
$ hd reg1
00000000 61 62 63 0a 0a |abc..|
00000005
$ hd reg2
00000000 61 62 63 0a 0a 0a |abc...|
00000006
$ echo def | fgrep -f reg1
$ echo def | fgrep -f reg2
def
$ fgrep -V
GNU grep 2.5.3
Copyright © 1988, 1992-2002, 2004, 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$
собачья ямка здесь:
?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 44
Re: странности fgrep
Что непонятного? Написал строку, нажал Enter. Для упрощения создал файл всего из одной строки.
Тот же файл без перевода строки тоже не работает.
С уважением, Влад
-
- Сообщения: 44
Re: странности fgrep
Итак.
Я бы мог сейчас сообщить, что вопрос закрыт. Но!
Я решил проблему так. Вместо файла, хранящего строки для fgrep под названием sens,
я создал новый файл под другим названием и вписал три нужных мне строки.
Заменил в скрипте sns название на новое. И вуаля! Скрипт снова заработал
.
Почему вопрос не закрыт? Да хотелось бы знать причину аномалии.
Я бы мог сейчас сообщить, что вопрос закрыт. Но!
Я решил проблему так. Вместо файла, хранящего строки для fgrep под названием sens,
я создал новый файл под другим названием и вписал три нужных мне строки.
Заменил в скрипте sns название на новое. И вуаля! Скрипт снова заработал

Почему вопрос не закрыт? Да хотелось бы знать причину аномалии.
С уважением, Влад
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: странности fgrep
cr+lf? windows-софтом файлик не редактировали? в каком редакторе сейчас редактируете?
да и вообще — просто посмотрите содержимое hexdump-ом:
$ hexdump -C <файл>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 44
Re: странности fgrep
Редактирую иногда в nano, но чаще в KWrite, мне в нем удобнее. Мысль редактировать
в винде, чтобы потом использовать в линуксе, как абсолютно бредовая не могла прийти
в мою далеко не гениальную голову. А как Вам такое подумалось?
Насчет hexdump. Поздно пить боржоми. О каком файле речь? Если о скрипте, то с ним
все в порядке, он работает, см. выше. Если о файле, где хранятся строки для fgrep,
то я его удалил (см. выше). Может быть погорячился. И огромное спасибо за участие!
С уважением, Влад
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: странности fgrep
я уж не первый год почитываю этот форум. так что знаю — всякое бывает.
не за что. заходите к нам на огонёк.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог