![]() |
|
|
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 |
| remover um arquivo após 30 dias | dr46014 | Programação Shell Script e | 7 | 11-09-2007 09:06 |
| Encontre arquivos acessados no passado 1 ou 2 minutos, e deite mail. | varungupta | UNIX & avançada para usuários experientes | 2 | 09-12-2007 04:07 |
| Localize o arquivo a partir de 15 dias atrás | Youngblood | Programação Shell Script e | 2 | 03-03-2007 07:28 |
| arquivo foi criado antes de 15 dias atrás. | Youngblood | UNIX para Dummies Perguntas & Respostas | 1 | 03-02-2007 01:23 |
| ls últimos 4 dias ou especificar dias de arquivos no diretório | happyv | Programação Shell Script e | 3 | 01-22-2007 07:16 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
criar um arquivo CSV para últimos 7 dias
Tenho uma exigência que irá selecionar os arquivos com uma convenção de nomenclatura específica, que tem criado nos últimos 7 dias em um determinado directory.Lets dizer é o diretório / dados / XYZ e os nomes dos arquivos seguem a nomenclatura abaixo Daily_File como *. txt
Eu só preciso criar um arquivo que conterá o nome do arquivo, gravar o arquivo de contagem e seu tamanho (bytes ou KB ou MB ou GB mencionado junto com o valor). Alguém pode me ajudar escrever esse script. |
|
||||
|
Se por "record count" quer dizer "linha count", leia a wc comando manual da página.
Código:
wc /data/XYZ/Daily_File*.txt | nawk -v OFS=, '{ print $4, $1, $3 }'
|
|
||||
|
Sua linha contam.
Assim wc-l / dados / XYZ / Daily_File *. txt | nawk-v \u003d OFS, '(print $ 4, $ 3, $ 1)' Como ele vai encontrar o filesize.Usually o tamanho do arquivo é apresentado por K ou G ou M em Unix e apenas o valor numérico no caso de querer ter bytes.I KB MB GB Bytes no meu arquivo CSV. Como Daily_File_Students.txt, 1500,10 MB Daily_File_Teachers.txt, 1100,11 MB Daily_File_Staff.txt, 50,10 KB Daily_File_Fees.txt, 112.220 Bytes |
|
||||
|
Retire o -l a partir do wc comando e você começa byte (e palavra) conta para cada arquivo também. (Por que você adicioná-la no primeiro lugar?) Alguns simples pós-processamento para dividir por 1.000 ou 1.024 e aumentando o aparelho é fácil de adicionar ao awk script. (Você quer MB ou MiB, ou seja, 1000 ou 1024? Veja http://en.wikipedia.org/wiki/Mebibyte)
Código:
wc /data/XYZ/Daily_File*.txt |
nawk -v OFS=, '{ bytes=$3; suff="KMGT"; i=0;
while (bytes > 1000) { bytes = int(bytes/1000); i++ }
print $4, $1, bytes (i > 0 ? (" " substr(suff,i,1) "B") : " bytes") }'
Como uma recomendação de engenharia, eu ainda sugiro que você coloque o número bruto no arquivo CSV, e deixar a disposição da apresentação como KiB ou seja o que for para o consumidor de que o arquivo. Última edição por época; em 08/23/2008 03:12.. Motivo: Link para a Wikipedia |
|
||||
|
Graças ao código ..
Mas a exigência inicial era de ter os arquivos criados nos últimos 7 days.We necessidade de ogasoto a data de criação arquivo antes de publicá-las no arquivo CSV. Pode você por favor deixe-me saber como é que este código pode ser modificado para incorporar o requisito acima referido. |
![]() |
| Marcadores |
| Tags |
| csv, file size |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|