The OpenNET Project / Index page

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

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

"sed и awk скрипт"  
Сообщение от evi9 email on 28-Сен-07, 17:29 
Подскажите, как удалить из файла подстроку, начиная с символа номер 62 и до конца строки (перевод каретки) ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "sed и awk скрипт"  
Сообщение от pasha (??) on 28-Сен-07, 17:57 
>Подскажите, как удалить из файла подстроку, начиная с символа номер 62 и
>до конца строки (перевод каретки) ?
>

s/\(.\{62\}\).*/\1/g

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "sed и awk скрипт"  
Сообщение от evi9 email on 28-Сен-07, 17:59 
>>Подскажите, как удалить из файла подстроку, начиная с символа номер 62 и
>>до конца строки (перевод каретки) ?
>>
>
>s/\(.\{62\}\).*/\1/g

опс! спасибо.

а как это написать?

cat file .... ???


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "sed и awk скрипт"  
Сообщение от newser (ok) on 28-Сен-07, 18:19 
>[оверквотинг удален]
>>>до конца строки (перевод каретки) ?
>>>
>>
>>s/\(.\{62\}\).*/\1/g
>
>опс! спасибо.
>
>а как это написать?
>
>cat file .... ???

cat file | sed '...'

Учите матчасть!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "sed и awk скрипт"  
Сообщение от vic (??) on 28-Сен-07, 18:20 
>[оверквотинг удален]
>>>до конца строки (перевод каретки) ?
>>>
>>
>>s/\(.\{62\}\).*/\1/g
>
>опс! спасибо.
>
>а как это написать?
>
>cat file .... ???

sed 's/\(.\{62\}\).*/\1/g' < file.in > file.out

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "sed и awk скрипт"  
Сообщение от evi9 email on 28-Сен-07, 19:38 
не , не работает :( наверное я не правильно поставил условие,
так как написано sed 's/\(.\{62\}\).*/\1/g' делается отсечение всего текста в каждой строке после 62ого символа,

а нужно сделать, так, чтобы был найден символ в тексте 62 (этот символ может быть и на второй и на третьей, на любой строке) и потом удалить из файла подстроку, начинающуюся на символе 62 и заканчивающуюся возвратом каретки ( до конца строки), и все, остальные строки не трогать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "sed и awk скрипт"  
Сообщение от jd (??) on 28-Сен-07, 20:31 
>а нужно сделать, так, чтобы был найден символ в тексте 62 (этот
>символ может быть и на второй и на третьей, на любой
>строке) и потом удалить из файла подстроку, начинающуюся на символе 62
>и заканчивающуюся возвратом каретки ( до конца строки), и все, остальные
>строки не трогать.

Приведите пример входного файла и того, что должно получиться, а то непонятно, что вам нужно.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "sed и awk скрипт"  
Сообщение от evi9 email on 28-Сен-07, 21:22 
>Приведите пример входного файла и того, что должно получиться, а то непонятно,
>что вам нужно.

входной:

s asda gf<eol>
kjhtufndsjuwf sdsf dsfdsfwrewr<eol>
werwerwer wrw<eol>
gfdgdfgd gfdgfgfgdfgdfgdf<eol>
.....
gfdg dgfdf dgfdfgdgfdgf<eol>


нужно удалить блок, начинающийся с символа номер 15 и заканчивающийся концом строки,
т.о. на выходе должно получиться:
s asda gf<eol>
kjhtu<eol>
werwerwer wrw<eol>
gfdgdfgd gfdgfgfgdfgdfgdf<eol>
.....
gfdg dgfdf dgfdfgdgfdgf<eol>
  
или еще вариант, нужно удалить блок, начинающийся с символа номер 11 и заканчивающийся номером 14, т.о. на выходе должно получиться:

s asda gf<eol>
kfndsjuwf sdsf dsfdsfwrewr<eol>
werwerwer wrw<eol>
gfdgdfgd gfdgfgfgdfgdfgdf<eol>
.....
gfdg dgfdf dgfdfgdgfdgf<eol>

Как можно такие правила реализовать на sed? Читаю сейчас доки, не могу найти похожие примеры :(

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "sed и awk скрипт"  
Сообщение от anonymous (??) on 01-Окт-07, 20:35 
>нужно удалить блок, начинающийся с символа номер 15 и заканчивающийся концом строки

а можно вопрос: почему нельзя использовать cut(1): cut -c -15? Что за задача, коя требует таких извращений?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "sed и awk скрипт"  
Сообщение от zbl on 02-Окт-07, 15:22 
>нужно удалить блок, начинающийся с символа номер 15 и заканчивающийся концом строки,

Судя по всему, символ перевода строки символом не считается?
Думается, тут проще всего взять awk или Perl, или Ruby, да прочитать файл посимвольно...
awk, наверное, более всего подходит...
bash$ echo abcdefghij$'\n'1234567890 | \
      awk -vF=15 -vWC=0 \
      '{if(WC + length() >= F) print substr($0,0,F+1-WC); else WC+=length()}'
Тут WC -- счётчик символов, а F -- номер символа, начиная с которого нужно резать строку.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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