Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Demm
Зарегистрирован: 17.04.2005 Сообщения: 13
|
Добавлено: Вс Май 29 2005 22:04 Заголовок сообщения: Как удалить строчку без редактора |
|
|
Есть такая задача в unixе, надо в файле с текстом удалить строчку, не прибегая к редакторам.
Я вот как думаю, надо в процедуре открыть файл, скопировать текс, выбрать номер строки и скопировать текст до этой строки в новый фаил и после этой строки добавить в тот же фаил(> И >>). Но вот как как обратиться к строкам до нужной, и после нее? |
|
Вернуться к началу |
|
|
mad_alexx
Зарегистрирован: 14.01.2005 Сообщения: 154 Откуда: Иркутск
|
Добавлено: Пн Май 30 2005 05:15 Заголовок сообщения: Re: Как удалить строчку без редактора |
|
|
Если строка содержит какую-то уникальную для файла пследовательность символов, то можно через grep:
Код: |
cat file1.txt | grep -v <уникальная строка> >file2.txt
mv file2.txt file1.txt
|
|
|
Вернуться к началу |
|
|
критикан
Зарегистрирован: 18.02.2005 Сообщения: 247
|
Добавлено: Пн Май 30 2005 11:30 Заголовок сообщения: unix -- это конструктор моделей, windows -- это литая модель |
|
|
cat вхфайл | awk 'NR != номер { print }' > выхфайл
-----------
unix -- это конструктор моделей, windows -- это литая модель |
|
Вернуться к началу |
|
|
Demm
Зарегистрирован: 17.04.2005 Сообщения: 13
|
Добавлено: Пн Май 30 2005 17:59 Заголовок сообщения: |
|
|
критикан , спасибо.То что надо.
А с помощью какой команды можны копировать строчку и заместить ее?Если действовать тем же принципом. |
|
Вернуться к началу |
|
|
критикан
Зарегистрирован: 18.02.2005 Сообщения: 247
|
Добавлено: Пн Май 30 2005 18:12 Заголовок сообщения: а посмотреть описание awk? не можно? |
|
|
Demm писал(а): | То что надо.
А с помощью какой команды можны копировать строчку и заместить ее? Если действовать тем же принципом. |
Вариантов тьма. Например:
(замещение)
cat вхфайл | awk '{ if (NR == номер) { print "новая строка"} else { print } }' > выхфайл
(копирование, правда я не понял, что-куда копировать?)
cat вхфайл | awk '{ if (NR == номер) { print; print "новая строка"} else { print } }' > выхфайл
----------------------
а посмотреть описание awk? не можно? |
|
Вернуться к началу |
|
|
Demm
Зарегистрирован: 17.04.2005 Сообщения: 13
|
Добавлено: Пн Май 30 2005 18:18 Заголовок сообщения: |
|
|
копировать с 2 строчки в 5, например |
|
Вернуться к началу |
|
|
критикан
Зарегистрирован: 18.02.2005 Сообщения: 247
|
|
Вернуться к началу |
|
|
Demm
Зарегистрирован: 17.04.2005 Сообщения: 13
|
Добавлено: Ср Июн 01 2005 01:48 Заголовок сообщения: |
|
|
Спасибо я еще и здесь почитал http://www.citforum.ru/operating_systems/articles/sed_awk.shtml
Но у меня есть еще вопрос
Код: | case "$com"
in
1)
;;
2) echo “vvedite nomer str kotoryu nado ydalit”
read y
cat вхфайл | awk 'NR != $y { print }' > выхфайл
;; | почему он не соотносит номер строки с Y?
Код: | read str
cat вхфайл | awk '{ if (NR == $n) { print $str} else { print } }' > выхфайл ;; | И как принту соотнести строку с ввода? |
|
Вернуться к началу |
|
|
критикан
Зарегистрирован: 18.02.2005 Сообщения: 247
|
Добавлено: Ср Июн 01 2005 13:18 Заголовок сообщения: Пример пайпа из биологии? Коитус! |
|
|
Demm писал(а): | Код: | read y
cat вхфайл | awk 'NR != $y { print }' > выхфайл | почему он не соотносит номер строки с Y? | cat вхфайл | awk -v номер=$y 'NR != номер { print }' > выхфайл
PS. В awk'е $число означает содержимое поля №число входного текстового потока
---------------------------
Пример пайпа из биологии? Коитус! |
|
Вернуться к началу |
|
|
Demm
Зарегистрирован: 17.04.2005 Сообщения: 13
|
Добавлено: Ср Июн 01 2005 13:31 Заголовок сообщения: Re: Пример пайпа из биологии? Коитус! |
|
|
cat вхфайл | awk -v номер=$y 'NR != номер { print }' > выхфайл
Это номер чего? |
|
Вернуться к началу |
|
|
критикан
Зарегистрирован: 18.02.2005 Сообщения: 247
|
Добавлено: Ср Июн 01 2005 13:42 Заголовок сообщения: А других пайпов вы не знаете? Как не знаю! -- Penny's. |
|
|
cat вхфайл | awk -v AWK_VAR_TO_BE_A_NUMBER=$y 'NR != AWK_VAR_TO_BE_A_NUMBER { print }' > выхфайл
--------------------------------
А других пайпов вы не знаете? Как не знаю! -- Penny's. |
|
Вернуться к началу |
|
|
Demm
Зарегистрирован: 17.04.2005 Сообщения: 13
|
Добавлено: Ср Июн 01 2005 16:23 Заголовок сообщения: |
|
|
Я все это прочитал, но как сделать копирование с 2 на 5 строку например, не понял
ЗЫ Большое спасибо за ответы, очень благодарен |
|
Вернуться к началу |
|
|
критикан
Зарегистрирован: 18.02.2005 Сообщения: 247
|
Добавлено: Пт Июн 03 2005 14:08 Заголовок сообщения: Придётся не только положить в рот и разжевать, но и съесть |
|
|
cat вхфайл | awk '{ if (NR == 2) { print; ЗапомСтр = $0 } else if (NR == 5) { print ЗапомСтр } else { print } }' > выхфайл
----------------------------
Придётся не только положить в рот и разжевать, но и съесть |
|
Вернуться к началу |
|
|
Demm
Зарегистрирован: 17.04.2005 Сообщения: 13
|
Добавлено: Сб Июн 04 2005 16:58 Заголовок сообщения: |
|
|
Большое спасибо!
Не надо так строго, я только учусь!!! |
|
Вернуться к началу |
|
|
|