The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
редактирование текста, !*! Naiv, 27-Май-04, 16:49  [смотреть все]
Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
1) из строки вернуть символы, начиная с n-го символа по k-й;
2) частный случай - первые n символов;
3) вернуть символы начиная с первого найденного символа NNh и заканчивая первым найденным символом KKh.

и еще: правильно я понимаю, что утилитой sed можно выполнить все те же функции, что и утилитами grep, tr ?

  • редактирование текста, !*! vnp, 22:08 , 27-Май-04 (1)
    >Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
    >
    >1) из строки вернуть символы, начиная с n-го символа по k-й;

    sed -e "s/\(.\{$k\}\).*/\1/" -e "s/.\{$n\}\(.*\)/\1/"

    >2) частный случай - первые n символов;

    sed -e "s/\(.\{$n\}\).*/\1/"

    >3) вернуть символы начиная с первого найденного символа NNh и заканчивая
    >первым найденным символом KKh.

    sed -e "s/[^"$'\xNN'"]*\("$'\xNN'"[^"$'xKK'"]*"$'xKK'"\).*/\1/"

    >и еще: правильно я понимаю, что утилитой sed можно выполнить все те
    >же функции, что и утилитами grep, tr ?


    • редактирование текста, !*! WaprOld, 02:00 , 28-Май-04 (2)
      >>Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
      >>1) из строки вернуть символы, начиная с n-го символа по k-й;
      А если не пользоваться sed-ом? ;-)

      1. например в bash-е
      n=3
      Line="Строка"
      rock=${Line:2:$n}

      >>2) частный случай - первые n символов;
      2. там-же
      Line="Строка"
      Lin=${Line:0:$n}

      3. сразу не соображу, но подозреваю что тоже можно.

    • редактирование текста, !*! Naiv, 19:01 , 28-Май-04 (3)
      >>Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
      >>
      >>1) из строки вернуть символы, начиная с n-го символа по k-й;
      >
      >sed -e "s/\(.\{$k\}\).*/\1/" -e "s/.\{$n\}\(.*\)/\1/"
      >
      >>2) частный случай - первые n символов;
      >
      >sed -e "s/\(.\{$n\}\).*/\1/"
      >
      >>3) вернуть символы начиная с первого найденного символа NNh и заканчивая
      >>первым найденным символом KKh.
      >
      >sed -e "s/[^"$'\xNN'"]*\("$'\xNN'"[^"$'xKK'"]*"$'xKK'"\).*/\1/"
      >
      >>и еще: правильно я понимаю, что утилитой sed можно выполнить все те
      >>же функции, что и утилитами grep, tr ?

      спасибо большое! работает.
      есть еще несколько вопросов:

      1) как с помощью sed узнать количество строк в файле?
      2) как с помощью sed вернуть порядковый номер строки, в которой впервые встречается образец 'text'?

  • редактирование текста, !*! Naiv, 16:32 , 01-Июн-04 (4)
    1) как с помощью sed узнать количество
    строк в файле?
    2) как с помощью sed вернуть порядковый
    номер строки, в которой впервые
    встречается образец 'text'?


    • редактирование текста, !*! vnp, 22:21 , 01-Июн-04 (5)
      >1) как с помощью sed узнать количество
      >строк в файле?

      sed -n -e '$='

      >2) как с помощью sed вернуть порядковый
      >номер строки, в которой впервые
      >встречается образец 'text'?

      sed -n -e '/text/=' -e '/text/q'

      А вообще-то, rtfm.




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

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