The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"поиск и преобразование текста"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"поиск и преобразование текста"  +/
Сообщение от rec (??) on 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?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "поиск и преобразование текста"  +/
Сообщение от михалыч (ok) on 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
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "поиск и преобразование текста"  +/
Сообщение от Аноним (??) on 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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "поиск и преобразование текста"  +/
Сообщение от rec (??) on 28-Апр-14, 08:34 
Огромное спасибо за помощь, за уделенное внимание!
Оба варианта опробовал, работают так, как хотелось.
Спасибо!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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


grep named --colour /etc/rc.conf

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


alias grep 'grep --color=auto'

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "поиск и преобразование текста"  +/
Сообщение от Аноним (??) on 28-Авг-14, 23:10 
> не знаю, работает ли это в FreeBSD 4.4
> egrep -o "www.*" example.txt

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру