URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9856
[ Назад ]

Исходное сообщение
"поиск и преобразование текста"

Отправлено rec , 25-Апр-14 16:04 
Добрый день!
Нужда заставила проработать объемный список.
Большой бесформенный текст.
Не раз пользовался возможностями скриптов в unix.
Можно конечно выбрать строки с нужным образцом с помощью grep.
Захотелось более информативной записи, а именно, чтобы то, что ищется, расположилось в начале строки.
Например, исходный вид:

lkjjkj lkjj www lkjkjk  
www lkjlkj lj lkj k  
kjjlkjkklkl   klklkl klk klj klj
lkjdfj lkjdslkfj lkjklj  www jlkj

Требуемый результат (поиск www):

www lkjkjk  
www lkjlkj lj lkj k  
www jlkj

Может кто подскажет простенькое решение для компа со старенькой FreeBSD 4.4?


Содержание

Сообщения в этом обсуждении
"поиск и преобразование текста"
Отправлено михалыч , 25-Апр-14 17:09 
Вот, попробуйте
#!/bin/sh

while read line; do
    if [ "$line" != "${line#*$1}" ]; then
        tmp=${line#*$1}
        echo $1$tmp
    fi
done < text

Запускать так: ./script.sh www
либо perl

"поиск и преобразование текста"
Отправлено Аноним , 28-Авг-14 23:15 
> Вот, попробуйте
#!/bin/sh 
> while read line; do
>     if [ "$line" != "${line#*$1}" ]; then
>         tmp=${line#*$1}
>         echo $1$tmp
>     fi
> done < text
Запускать так: ./script.sh www

> либо perl

Всё так, однако же Ышшо вот так можно:

Ы@fbsd:~ % sed -n 's/^.*\(www.*$\)/\1/p' input.txt
www lkjkjk
www lkjlkj lj lkj k
www jlkj


"поиск и преобразование текста"
Отправлено upf , 25-Апр-14 17:10 
Perl рулит:
cat ./file | perl -pe "s/^.*(www.*)$|^.*()$/\1/; s/^\n//"


"поиск и преобразование текста"
Отправлено rec , 28-Апр-14 08:34 
Огромное спасибо за помощь, за уделенное внимание!
Оба варианта опробовал, работают так, как хотелось.
Спасибо!

"поиск и преобразование текста"
Отправлено universite , 01-Май-14 18:40 
> Добрый день!
> Нужда заставила проработать объемный список.
> Большой бесформенный текст.
> Не раз пользовался возможностями скриптов в unix.
> Можно конечно выбрать строки с нужным образцом с помощью grep.

Можно подсветить искомые слова


grep named --colour /etc/rc.conf

или через алиасы


alias grep 'grep --color=auto'


"поиск и преобразование текста"
Отправлено близняшко , 28-Авг-14 19:21 
> Может кто подскажет простенькое решение для компа со старенькой FreeBSD 4.4?

не знаю, работает ли это в FreeBSD 4.4
egrep -o "www.*" example.txt


"поиск и преобразование текста"
Отправлено Аноним , 28-Авг-14 23:10 
> не знаю, работает ли это в FreeBSD 4.4
> egrep -o "www.*" example.txt

В новых - работает, 4.4 нет чтобы потестить, но скорее нет :)