![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| modificar um determinado padrão a partir de segunda linha de pesquisa padrão | IMAS | UNIX para Dummies Perguntas & Respostas | 1 | 10-12-2008 02:19 |
| modificar um determinado padrão a partir de segunda linha de pesquisa padrão | IMAS | UNIX para Dummies Perguntas & Respostas | 2 | 10-12-2008 12:30 |
| Como você pode apagar registros em um arquivo que correspondam a um padrão? | mode09 | UNIX para Dummies Perguntas & Respostas | 2 | 07-15-2008 02:53 |
| excluir colunas com uma linha padrão correspondência | greptastic | UNIX para Dummies Perguntas & Respostas | 5 | 06-30-2008 04:32 |
| Multile Padrão Pesquisa em uma mesma linha e apagar | sasree76 | Programação Shell Script e | 2 | 04-16-2008 03:12 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
comentário / apagar um determinado padrão a partir de segunda linha da correspondência padrão
Oi,
Tenho arquivo 1.txt com as seguintes entradas como mostrado: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 ** ** ** No arquivo 2.txt Eu tenho as seguintes entradas como mostrado: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Eu quero ter o endereço IP a partir de 1.txt coluna e, em seguida, busca-lo no 2.txt e comentar o duplicado entrada da segunda correspondência padrão. ou seja, eu preciso ter a seguinte saída no 2.txt como mostrado: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Abaixo está o script que escrevi mas vai comentar todas as entradas duplicadas: para i em `cat 1.txt | cut-d" | "-f3` fazer gato 2.txt |sed "s / ^ \ (.* \ | $ i \ |.*)/#/ g"> tmp.txt mv tmp.txt 2.txt feito Pode orientar-me uma certa forma de deixar a primeira entrada duplicado intocado e comentar / delete duplicate entrada da segunda e assim por diante. ![]() Por favor, não feche esta discussão se você não sabe a resposta. Obrigado -IMAS |
|
||||
|
Sim a sua hipótese é correta e esse é um problema real do mundo
O que iam tentando fazer é comentar a segunda via IP's encontrados no arquivo de texto ignorando a primeira ocorrência, para ser válida para um IP válido e mac a partir da segunda ocorrência em diante comentando o duplicado IPs no início da linha. 1.txt arquivo com as seguintes entradas como mostrado: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 ** ** ** 2.txt arquivo com as seguintes entradas como mostrado: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** Preciso ter a seguinte saída no 2.txt como mostrado: 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 *** *** *** O correto é script que escrevi para i em `cat 1.txt | cut-d" | "-f3` fazer gato 2.txt |sed "s / ^ \ (.* \ | $ i \ |.*)/# \ 1 / g"> tmp.txt mv tmp.txt 2.txt feito Mas o script acima irá comentar todas as ocorrências. Sua ajuda é muito apreciada. Obrigado -IMAS |
|
||||
|
Oi Summer_Cherry,
Milhões de agradecimentos por me dar o pedaço de código que vai comentar a partir de segunda ocorrência de correspondência padrão a partir do início da linha. intelsol2> cat 1.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 intelsol2> gato 2.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 0789456 | 332211 | 10.20.30.40 | 078945633 1234567 | 225522 | 10.20.30.50 | 123456733 0321654 | 999999 | 10.20.30.40 | 032165433 0456123 | 777899 | 10.20.30.40 | 045612333 intelsol2> nawk 'BEGIN (FS \u003d"|"} ( if (NR \u003d\u003d FNR) um [$ 3] \u003d 0 diferente ( um [$ 3] + + if (um [$ 3]> \u003d 2) print "#" $ 0 diferente print $ 0 ) ) '1.txt 2.txt> 3.txt intelsol2> gato 3.txt 0152364 | 134444 | 10.20.30.40 | 015236433 0233654 | 122555 | 10.20.30.50 | 023365433 # 0789456 | 332211 | 10.20.30.40 | 078945633 # 1234567 | 225522 | 10.20.30.50 | 123456733 # 0321654 | 999999 | 10.20.30.40 | 032165433 # 0456123 | 777899 | 10.20.30.40 | 045612333 intelsol2> Além disso, graças um lote para unix fórum caras "você ppl rock!" FYI, eu estava a tentar procurar por esse código uma vez que todos os fins de semana e passou por sed manual "http://www.grymoire.com/Unix/Sed. html "sub-tópico (/ 1, / 2, etc especificar quais ocorrência) porém foi infeliz na tentativa todo o método de tentativa e erro. Verão também poderia explicar-me o código que você tenha escrito para que eu possa compreendê-la em uma maneira melhor. Mais uma vez um agradecimento muito e você pode fechar esta discussão. Obrigado -IMAS |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|