![]() |
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos! |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| "sede" para verificar o tamanho do arquivo & echo "" ao arquivo de destino | jockey007 | Programação Shell Script e | 7 | 04-28-2009 02:08 |
| Como posso substituir "(", "\" "+" em um arquivo | mail2sant | Programação Shell Script e | 3 | 04-22-2008 11:10 |
| Desenvolvimento Release: Linux Mint 4,0 Beta "Fluxbox", 4.0 Alpha "Debian" | iBot | UNIX e Linux RSS Notícias | 0 | 01-04-2008 03:00 |
| Explique a linha "mn_code \u003d` env | grep ".. mn" | awk-F "\u003d" '(print $ 2)' `" | Lokesha | UNIX para Dummies Perguntas & Respostas | 4 | 12-20-2007 01:52 |
| Não utpmx entrada: você deve executar "login" de nível mais baixo "shell" | peterpan | UNIX para Dummies Perguntas & Respostas | 0 | 01-18-2006 04:15 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
"vi"-ing um arquivo atualizado constantemente
Oi,
Um pouco de uma pergunta idiota aqui. Desculpa pessoal. Suponha que eu tenho esse arquivo que está a ser actualizada a intervalos irregulares (de alguns segundos, a poucos minutos, quem sabe) por um fundo processo. Euvi'Esse arquivo, com a intenção de edição que, por isso, abre-se uma temperatura cópia como o habitual / tmp/720cwhatever Agora suponha que, enquanto eu tenho esse arquivo aberto, actualizada várias vezes por seus antecedentes do processo. Eu faço as minhas alterações, salve-saia. O que acontece com as atualizações que foram feitas pelo processo de fundo durante o tempo que tinha o arquivo aberto? Como faço para atenuar esta situação? (infelizmente, suspendendo o processo de fundo não é uma opção). O arquivo também é bastante grande (cerca de 40MB) para que ele tome vi alguns segundos para carregá-lo para cima, para ele guardar etc .... Unix é ksh. OS é SunOS. Espero que vocês possam ajudar! - Thanks in advance! |
|
|||||
|
Percy, como sysgate observou, a sua solução irá depender fortemente o que exatamente
você deseja atualizar o arquivo em. Será realmente necessário "vi"O arquivo? Poderia ser escrito um shell para fazer as atualizações que você quer? |
|
||||
|
OK cheers guys!
Um pouco mais informação: O que exatamente eu quero fazer é esta: Este é um arquivo grande, cheio de arquivo e uma hashcode para cada nome. cada linha do arquivo é filename, data, hashcode filename, data, hashcode ... Enfim, para que um arquivo está em um servidor, recebe um hashcode que é então colocado em uma grande arquivo de log mina e, em seguida, o arquivo é processado. Deverá ser enviado o arquivo de novo para o servidor, a sua hashcode é verificada e, se ela existe (ou seja, o meu processo tem tratado com ele já) que lida com o arquivo adequadamente. Venho fracassou quando necessário reprocessar o mesmo arquivo novamente - e eu preciso editar o arquivo de registro grande e remova a entrada (toda a linha - nome, data, hashcode) para que eu possa feed-lo através de novo. Escrever um sh para lidar com isso? - Não tenho certeza - a um daqueles onde acontece frequentemente, mas não com freqüência suficiente para justificar um sh .... mas o seu algo que eu acho que poderia olhar para. Uma outra coisa: Suponha duas pessoas sudos para um usuário (o mesmo utilizador), primeiro e, em seguida, edite o arquivo - você não receber a mensagem sobre o arquivo mudando quando você salvar / sair certo? - Pelo menos é o que parece que isso aconteça aqui no Mundo Bizarro ... |
|
|||||
|
Percy,
Aqui está uma possível solução: 1) Mudar o nome da "work_file" para um "tmp_file" e criar imediatamente um novo "work_file" para que novos registros pode continuar a ser adicionado a ele. Código:
mv work_file tmp_file touch work_file 2.a) Quando tiver acabado com as suas alterações na "tmp_file", Não saia ainda. 2.b) Vá para o fim do "tmp_file" e na linha de comando digite: Código:
:r work_file de "tmp_file". 2.c) Escreve e sair da "tmp_file". Como diz o arquivo é muito grande, se você tentar salvar a área de trabalho como "work_file", pode levar um longo tempo e utilizar uma grande quantidade de memória e espaço em disco. 3) Imediatamente renomear "tmp_file" volta a "work_file". Código:
mv tmp_file work_file |
|
||||
|
Obrigado por isso.
Há ainda o potencial de uma ligeira falta aditamentos ao logfile entre etapas 2c e 3 - e principalmente devido ao seu rápido como eu posso tipo "mv arquivo ficheiro2" - em um pânico, eu provavelmente gastar mais tempo batendo o retrocesso do que realmente digitando comandos corretamente. Sua definitivamente uma melhor apanhador de entradas do que a solução eu tinha em mente - de forma muito obrigado! ![]() |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|