1 (19.09.2012 17:00:09 отредактировано Asus_ROG)

Добрый вечер!

Стоит такая задача, есть файл 1.txt в нем текст hello hello dlrow. Хочу чтобы при помощи grep терминал вывел слово world. То есть как заставить grep искать файлы справа налево,  и для поиска зеркальных слов. Пробовал добавлять grep|rev, но как вы видите ниже вывелось только  world olleh olleh, а мне нужно чтобы при вводе вышло только слово world. Пожалуйста помогите решить данную проблему. Заранее спасибо!

grep |rev "world" 1.txt
rev: world: No such file or directory
world olleh olleh
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.

P.S.
Прошу простить, если я ошибся веткой, знаю что тут решают более сложные проблемы, но в нете ничего толкового про это не нашел(

2

Согласно man grep, эта команда ищет строки, т.е. чтобы вывести отдельное слово только её возможностей будет недостаточно.

Был, был и весь вышел...

3

Lupo Alberto пишет:

Согласно man grep, эта команда ищет строки, т.е. чтобы вывести отдельное слово только её возможностей будет недостаточно.

Значит в одну строку это невозможно реализовать, спрашивал у тьютора, он сказал что это делается примерно так же в одной строке: grep '^a' 'words.txt' (вывести из файла «words.txt» все строки, начинающиеся с буквы «a»:). Уже 4 часа потратил на это нигде нет похожих примеров.

К слову man grep тоже особо, не помогла
man grap "world" 1.txt
No manual entry for grap
No manual entry for world
No manual entry for 1.txt

Еще раз спасибо!

4

Asus_ROG пишет:

grep '^a' 'words.txt' (вывести из файла «words.txt» все строки, начинающиеся с буквы «a»:

Все строки, но не отдельное слово.
man grep — подразумевалось руководство по команде grep.
P.S. Приведите дословно, как звучит задание.

Был, был и весь вышел...

5 (19.09.2012 18:13:33 отредактировано yars)

Asus_ROG пишет:
man grap "world" 1.txt
No manual entry for grap
No manual entry for world
No manual entry for 1.txt

А почему вы уверены, что man знает команду grap, слово world и ваш файл 1.txt?
UPD: Lupo Alberto, вы меня опередили ab

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

6 (19.09.2012 18:40:27 отредактировано -=Serj=-)

Может это имелось ввиду:

 Консоль:
$ cat 1.txt
abra cadabra
прсто строка
hello hello dlrow
$ grep dlrow 1.txt | rev
world olleh olleh

ЗЫ. А, не... нужно только первое слово...

Да, у меня Ubuntu.
Нет, не глючит.

7

Вот само задание: search the content of file for random specified string (search should be performed in both directions)

Как показал тьютор, нужно ввести в файл любые слова, но чтобы одно слово было зеркальным (apple  elppa), сказал что нужно ввести команду grep и ввести слово apple, и чтобы в аутпуте вышло только apple.
-=Serj=-
Тоже самое у меня вышло первом посте world olleh olleh, но тьютор сказал так нельзя, нужно чтобы вышло только world.

8

yars пишет:
Asus_ROG пишет:
man grap "world" 1.txt
No manual entry for grap
No manual entry for world
No manual entry for 1.txt

А почему вы уверены, что man знает команду grap, слово world и ваш файл 1.txt?
UPD: Lupo Alberto, вы меня опередили ab

Ну я думал что man это как префикс типа ls -a и т.д.

9

Asus_ROG пишет:

search the content of file for random specified string (search should be performed in both directions)

«Поиск по содержимому файла для случайно указанной строки (поиск должен осуществляться в обоих направлениях».
IMHO, звучит несколько иначе, чем...

Asus_ROG пишет:

Как показал тьютор, нужно ввести в файл любые слова, но чтобы одно слово было зеркальным (apple  elppa), сказал что нужно ввести команду grep и ввести слово apple, и чтобы в аутпуте вышло только apple.

Был, был и весь вышел...

10

 Консоль:
$ rev 1.txt | grep -o world

Да, у меня Ubuntu.
Нет, не глючит.

11

Lupo Alberto пишет:
Asus_ROG пишет:

search the content of file for random specified string (search should be performed in both directions)

«Поиск по содержимому файла для случайно указанной строки (поиск должен осуществляться в обоих направлениях».
IMHO, звучит несколько иначе, чем...

Asus_ROG пишет:

Как показал тьютор, нужно ввести в файл любые слова, но чтобы одно слово было зеркальным (apple  elppa), сказал что нужно ввести команду grep и ввести слово apple, и чтобы в аутпуте вышло только apple.

Ну не знаю мне тьютор лично сказал как должно все получиться, но не сказал как все это реализовать, по-его словам единственный и верный способ это grep, но я ничего не нашел. Неужели нельзя что нибудь сделать в данном случае?

12

Может, всё же задание звучит так: найти в файле строки, содержащие «зеркальное» отображение шаблона?
Точнее, так его понимает преподаватель.

Был, был и весь вышел...

13

Lupo Alberto пишет:

Может, всё же задание звучит так: найти в файле строки, содержащие «зеркальное» отображение шаблона?
Точнее, так его понимает преподаватель.

Нет, он на доске написал, что допустим в файле есть текст hello hello hello hello dlrow. При помощи grep надо найти в нем слово world и чтобы при выводе вышло только world, а не world olleh olleh olleh, получается что на уровне grep такого сделать не получится, пожалуйста помогите.

14

Не, а этот вариант-то попробовали - Grep обратный пойск ?

Да, у меня Ubuntu.
Нет, не глючит.

15

-=Serj=- пишет:

Не, а этот вариант-то попробовали - Grep обратный пойск ?

Спасибо, помогло! То что и хотелось.
grep |rev "world" 1.txt, блин конечно изначально и не так близок был  ac   

[asus@mgt1 test]$ ls
1.txt
[asus@mgt1 test]$ tee<1.txt
hello hello dlrow
[asus@mgt1 test]$ rev 1.txt | grep -o world
world
[asus@mgt1 test]$

16

Еще раз извиняюсь, а если у меня тот же файл 1.txt и в нем текст hello hello dlrow world, как сделать так чтобы grep вывел только world и dlrow, попробовал комманду grep -e "world\|dlrow" 1.txt, но вышла вся строка (hello hello dlrow world), так же пытался сделать так grep 1.txt "world&dlrow" 1.txt результата не дало. Спасибо!

17 (25.09.2012 19:54:43 отредактировано -=Serj=-)

 Консоль:
$ grep -o "world\|dlrow" 1.txt

или
 Консоль:
$ grep -Eo "world|dlrow" 1.txt

или
 Консоль:
$ egrep -o "world|dlrow" 1.txt

Да, у меня Ubuntu.
Нет, не глючит.

18

-=Serj=-
Спасибо!

19

Asus_ROG пишет:

Нет, он на доске написал, что допустим в файле есть текст hello hello hello hello dlrow. При помощи grep надо найти в нем слово world и чтобы при выводе вышло только world, а не world olleh olleh olleh, получается что на уровне grep такого сделать не получится, пожалуйста помогите.

echo "hello hello hello hello dlrow" | rev | grep -o 'world'
1:world
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)