Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » TextPipe: несколько вопросов.

Ответить
Настройки темы
TextPipe: несколько вопросов.

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: 7z data.7z
(19.9 Kb, 20 просмотров)
1. как обьединить 1ю и 2ю строку.
2. как заменить "двоеточие знак абзаца" на "двоеточие пробел" (не нашел в спец символах знака абзаца)
3. как найти 2ва определенных слова и удалить все что между ними. (например: ...как я провел лето... -> ...как лето...)
4. как сохранить конечный файл с именем из 1й строки этого файла.


прикрепил архив с исходниками, если кто захочет взглянуть поглубже -)

Отправлено: 23:49, 29-01-2011

 

Ветеран


Сообщения: 4527
Благодарности: 348

Профиль | Сайт | Отправить PM | Цитировать


Классная программа... только вот я забыл, как ею пользовался .

-------
Моя статья на OSzone.net


Отправлено: 02:52, 01-02-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите и мне пожалуйста.

Нужно удалить строки, в которых больше 7-ми слов.
(один символ тоже считается словом)


Отправлено: 21:03, 14-01-2014 | #3


Ветеран


Сообщения: 2029
Благодарности: 704

Профиль | Отправить PM | Цитировать


awk '{ if( NF<8 ) print}'

-------
Господа! Убедительная просьба не обращаться за консультациями в ЛС. Поверьте, создать ветку в соответствующем разделе форума гораздо эффективнее.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:12, 14-01-2014 | #4


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата AMDBulldozer:
awk '{ if( NF<8 ) print}' »
Краткость сестра таланта

Цитата:
Удалить строки => Удалить не согласующиеся строки =>
не выходит.
Как я понимаю это вообще в cmd пишется?

Для символов работает такое:

PHP код: Выделить весь код

^.{10

Тоесть фильтр убирает строки в которых меньше 10 символов.


Отправлено: 01:01, 15-01-2014 | #5


Ветеран


Сообщения: 2029
Благодарности: 704

Профиль | Отправить PM | Цитировать


Цитата regga5:
Удалить строки => Удалить не согласующиеся строки => »
Зачем их удалять? Это тоже можно сделать, но смысла в этом я не вижу никакого.
Ведь удалить строки - это не цель. Не может быть у здравомыслящего человека такой цели. Это всё равно, что объявить целью копание ямы. Но ни одному нормальному человеку копать яму не нужно - ему нужно, чтобы она была выкопана. Безразлично каким образом.
Это относится и к Вашему случаю. Я полагаю, Вы легко объясните преподавателю, что удалять строки - не самоцель. Цель - получить файл без этих строк. Логично?
Что делаем:
1. Выводим файл на стандартный вывод: "cat $1"
2. Используем фильтр, который пропускает только строки в которых менее 8 полей. Полем называется непрерывная последовательность непробельных символов (т.е. не содержащих пробела, вертикальной и горизонтальной табуляции, перевода строки и возврата каретки - тех символов, для которых функция языка C isspace() выдает ненулевое значение). Вы их называете "словами": awk '{ if( NF<8 ) print}'
3. После второго этапа мы получили на stdout поток из которого удалены все строки содержащие 7 и менее слов. Сохраняем его во временном файле: > $1.tmp
4. Переименовываем временный файл, заменяя им исходный - voila, задача выполнена: mv $1.tmp $1


Итого получили:
Код: Выделить весь код
cat $1 | awk '{ if( NF<8 ) print}' > $1.tmp; mv $1.tmp $1

-------
Господа! Убедительная просьба не обращаться за консультациями в ЛС. Поверьте, создать ветку в соответствующем разделе форума гораздо эффективнее.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:23, 15-01-2014 | #6


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата AMDBulldozer:
Логично? »
Да, согласен.

Буду делать.
В догонку, есть вариант проще?

По идеи можно покрутить поле "Удалить не согласующиеся строки" и обойтись 10-15 символами.

Отправлено: 01:33, 15-01-2014 | #7


Ветеран


Сообщения: 2029
Благодарности: 704

Профиль | Отправить PM | Цитировать


Цитата regga5:
есть вариант проще? »
Так проще?
Код: Выделить весь код
sed -ri '/(\S+\s+){7}\S/d' file

-------
Господа! Убедительная просьба не обращаться за консультациями в ЛС. Поверьте, создать ветку в соответствующем разделе форума гораздо эффективнее.

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:35, 15-01-2014 | #8


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата AMDBulldozer:
sed -ri '/(\S+\s+){7}\S/d' file »
Все обошлось простым способом

Удалить строки => Удалить не согласующиеся строки => Pattern (perl) => ^([^\s]+\s?){0,7}$



А в этом поможете?

Как удалить строки, которые содержат только цифры?
Как удалить строки, в которых есть "шт" (только целые слова и "шт" сразу после символов, например 100шт, 2шт)?
Как удалить строки которые начинаются с символов? Например "01234567890" или "5448вебмастер" или "348953948 вебмастер"
Как просеять строки по фильтру а-я, a-z, 0-9? Оставив строки, в которых нет каких либо любых спец. символов, а только буквы и символы.

Отправлено: 14:29, 25-01-2014 | #9



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » TextPipe: несколько вопросов.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Несколько вопросов raingts Хочу все знать 2 30-01-2007 18:05
Несколько вопросов barbos Общий по Linux 8 16-12-2004 20:40
Несколько вопросов по C++ pva Программирование и базы данных 2 09-04-2004 08:45
Несколько вопросов об ... Sharkky Программирование и базы данных 4 08-10-2003 13:01
Несколько вопросов по RH 9 Frost Wolf Общий по Linux 12 07-09-2003 12:51




 
Переход