The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Удалить строку в текстовом файле Неистовый UNIX для чайников Вопросы И Ответы 6 12-16-2008 03:44 PM
Как удалить определенный текст, не открывая файл. stevefox Shell программирование и сценарии 12 02-21-2008 01:24 PM
Удалите первую строку из любого текстового файла? aungomarin Shell программирование и сценарии 5 05-16-2006 10:42 PM
Как удалить за текст в файле? forevercalz Shell программирование и сценарии 5 01-08-2006 10:28 PM
удалить последнюю строку из текстового файла hcclnoodles Shell программирование и сценарии 4 06-25-2002 10:52 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 08-14-2007
33junaid 33junaid is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2007
Сообщений: 27
Перезаписать И исключить в текстовый файл

Дорогие Все,

Я текстовый файл так:

Header
Запись 1
Запись 2
.......
Запись N
Хвост

Эта строка кода:
AWK '(если (NR \u003d\u003d 1) (головы \u003d substr ($ 0,1,300);) (последняя еще \u003d substr ($ 0,1,300);) END (printf "заголовок: 300%-прицеп:%-300 \ N ", начальник, в прошлом) 'имя_файла

конвертированы Header и прицепов в одну линию, и в 300 символов each.The вывода только одна строка.

Теперь я хотел бы переписать одну строку выше (Header + хвоста) на первой строке исходного файла (оригинальный заголовок) и удалить хвост ........ Я могу скопировать этот заголовок и хвост на новый файл, а затем добавить запись Записи с 1 по N на этот новый файл, но это вызовет слишком низкая производительность ........ так что я думаю, лучше обновить первую и последнюю строку в этом файле ........... ...... да, то каким образом я могу сделать это?

то есть 1-модификации заголовка с новой строки т.е. (заголовок + трейлер)
2-опустить хвост в исходный файл (можно сократить с помощью хвоста -1 файла?)
Old 08-14-2007
lorcan lorcan is offline
Зарегистрированный пользователь
  
 

Регистрация: May 2007
Сообщений: 219
Dont Bump ваш вопрос, открыв новую тему. Вы можете обратиться в свой старый нить

Колонтитулы
Old 08-14-2007
lorcan lorcan is offline
Зарегистрированный пользователь
  
 

Регистрация: May 2007
Сообщений: 219
Сохранить выход из AWK в переменной, как


Код:
New_head=$(awk '{ if ( NR == 1 ) { head=substr($0,1,300);} else { last = substr($0,1,300);}END{printf "Header is : %-300s Trailer is : %-300s\n", head, last}' filename )

И тогда вы можете сделать что-то вроде


Код:
sed -e "1 c\ $New_head" -e '$d' filename

Old 08-14-2007
33junaid 33junaid is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2007
Сообщений: 27
Спасибо ..... я старался кода, но SED Команда не работает должным образом, это дает результат:

SED: Команда искажен: 1 C \ заголовок: Headervalue ....... прицеп: Прицеп значения .....


Она не дает никаких изменений в файл, а.
Old 08-14-2007
33junaid 33junaid is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2007
Сообщений: 27
любое счастье для меня, а?
Old 08-14-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Регистрация: Mar 2005
Расположение: в конечном узле B + дерево
Сообщения: 2957
Там был другой нитью, как lorcan сказал, и это, по-видимому, представляет собой лишь продолжение вышеизложенного нить в новую должность.

Пожалуйста, продолжайте опубликовать свой вопрос в одной и той же нити тем, что было бы легче держать, а не начинать новую нить к одному и тому же вопросу.

Если предположить, что я понял ваши требования попробовать это,


Код:
awk ' { if ( NR == 1 ) { head=$0 } else { last = $0 } arr[i++]=$0; }END{ printf "Header is : %s Trailer is : %s\n", head, last; for( x=0; x<i-1; x++) { print arr[x] } }' filename


Код:
Header is : header Trailer is : trailer
header
record 1
record 2
record 3

комбинированные заголовок и трейлер доступен следует, что
заголовок имеется
все записи отображаются
Прицеп запись не отображается

Если это не то, что вы просили, дайте нам знать
Old 08-16-2007
33junaid 33junaid is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2007
Сообщений: 27
хорошо, что это нормально, но я был просто обеспокоен количеством файлов, созданных ........ есть одна проблема, которую я получаю один дополнительный строки (пустая строка) в конце файла ....... .... почему это так, используя этот код:


AWK '(если (NR \u003d\u003d 1) (головы \u003d substr ($ 0,1,149);) (последняя еще \u003d substr ($ 0,1,149);) обр [I ++]\u003d$ 0;) END (printf "%-149s% -- 149s \ N ", начальник, в прошлом, ибо (X \u003d 1; х <i-1; x++) печати arr[x] () }'file1> file2


Когда я открываю file2, я получаю одну дополнительную строку .......?
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 08:54 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0