![]() |
|
|
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 |
| Perl: busca de corda em linha, em seguida, procurar e substituir texto | Crypto | Programação Shell Script e | 4 | 01-04-2008 10:24 |
| Necessidade de substituir todas as ocorrências de uma string de pesquisa usando sed | mjs3221 | Programação Shell Script e | 2 | 12-07-2006 02:09 |
| Seqüência Search & Replace | IwishIknewC | UNIX para Dummies Perguntas & Respostas | 1 | 03-25-2006 06:28 |
| Pesquisar e substituir a string entre 2 pontos | whited05 | Programação Shell Script e | 3 | 10-11-2005 03:05 |
| string pesquisa substituir | krishna | UNIX & avançada para usuários experientes | 1 | 12-19-2001 01:49 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Procurar, substituir string em ficheiro1 com seqüência de (tabela) ficheiro2?
Olá: Eu tenho outra pergunta. Considere os seguintes dois amostra, delimitado por tabulações arquivos:
File_1: Abf1 YKL112w Abf1 YAL054c Abf1 YGL234w Ace2 YKL150w Ace2 YNL328c Cup9 YDR441c Cup9 YDR442w Cup9 YEL040w ... Arquivo 2: ... ABF1 YKL112W ACE2 YLR131C CUP9 YPL177C ... File_2 é uma "tabela"; quero substituir $ 1 em File_1 na correspondência $ 2 no campo File_2 e adicionalmente, acrescentando uma coluna central que contém a string "tf", e uma coluna de "outros" ( "1" na primeira coluna posição), todos delimitado por tabulações. Além disso, seria ideal se o caso poderia ser ignorada para a busca / substituição, mas que a saída é tudo alfabética maiúscula [az] convertido para [AZ]. Atenciosamente, estes genes são levedura, além de números e letras, alguns dos genes vai conter traços (por exemplo, YBR162W-A), mas nenhum deles irá conter vírgulas, semicolons, espaços, etc Saída File_3: 1 YKL112W tf YKL112W 1 YKL112W tf YAL054C 1 YKL112W tf YGL234W 1 YLR131C tf YKL150W 1 YLR131C tf YNL328C 1 YLR131C tf YLR439W 1 YPL177C tf YDR441C 1 YPL177C tf YDR442W 1 YPL177C tf YEL040W ... Isto está relacionado com (mas diferente da) minha pergunta anterior, Biólogo molecular exige ajudar re: search / replace script Aqui, a primeira coluna é um "dummy" peso valor, para manter a "compatibilidade campo", com o meu anterior arquivo, como mostrado neste exemplo: 1 a gi b Pp 1 a uma 1 pp uma c 1 t gi u 1 t gi w 1 t gi x 1 t pp z 2 pp um d 2 pp e um 2 t gi v 2 t gi z 3-A, pp b 3 t y gi ... Afinal, eu vou acabar com um processo como este, com US $ 1 \u003d peso, gene1 \u003d $ 2, $ 3 \u003d associação, $ 4 \u003d gene2: 1 YKL112W tf YKL112W 1 YKL112W tf YAL054C 1 YKL112W tf YGL234W 1 YLR131C tf YKL150W 1 YLR131C tf YNL328C 1 YLR131C tf YLR439W 1 YPL177C tf YDR441C 1 YPL177C tf YDR442W 1 YPL177C tf YEL040W ... 1 YBL012C gi YCL045C 1 YBL012C pp YBL012C 5 YBL012C pp YHR039C-A 1-A YLR363W gi YNL143C 4-A YLR363W gi YPR123C 1-A YLR363W gi YLR467W 1-A YLR363W pp YNR073C 2 YBL012C pp YGL232W 2 YBL012C pp YOR102W 2-A YLR363W gi YFL066C 2-A YLR363W gi YNR073C 3 YBL012C pp YCL045C 3-A YLR363W gi YKL100C ... Obrigado - Mais uma vez, muito * * muito apreciada! Atenciosamente, Greg S. :-) |
|
||||
|
Citação:
Código:
awk '
FNR==NR{a[tolower($1)]=$2;next}
tolower($1) in a{print "1 " a[tolower($1)] " tf " toupper($2)}
' "File_2" "File_1"
Atenciosamente |
|
||||
|
Isto é absolutamente maravilhoso! ... :-)
Aqui é o meu entendimento de Franklin52 do código: Unix Manuals - Awk Referência # \u003d\u003d É "é igual" tolower (string): Retorna a string com todas as maiúsculas substituídas com suas minúsculas equivalentes. toupper (string): Retorna a string com todas as minúsculas em maiúsculas substituídas com seus equivalentes. FNR: número recorde no arquivo de entrada. NR: Número de registros processados. Assim, o script acima traduz (? - Corrija-me se estou enganado), como awk ' FNR \u003d\u003d NR (um [tolower ($ 1)] \u003d $ 2; próxima) enquanto o número do registro (linha) é igual ao número total de registros (é verdade), não todas as seguintes características: Get $ 1 (o nome comum gene - convertido em minúsculas - necessária uma vez que o campo correspondente na File_1 é minúscula, caso contrário, ele irá falhar o "jogo" - Linux é sensível a maiúsculas e minúsculas) na pesquisa do arquivo (File_2), set (alterá-lo ) para a (já maiúsculo) sistemática gene nome ($ 2) na mesma tabela, então ler o próximo registro número (linha); tolower ($ 1) em uma (print "1" uma [tolower ($ 1)] "tf" toupper ($ 2)) agora, para cada US $ 1 em File_2 (actualmente fixado em maiúsculas $ 2, a partir da tabela), na segunda imagem (File_1, a ser convertido para um), imprimir "1", $ 2 a partir de File_2; "tf", $ 2 a partir de File_1 (retornados como maiúsculas, para converter a rasteira minúsculas c, w,-um, etc) ' "File_2" "File_1" File_1 \u003d arquivo a ser processado (convertido) File_2 \u003d "lookup file" ( "common_to_systematic.tab) ?! Isto funciona brilhantemente! Muito obrigado, Franklin52! Tenha uma super semana! ... Greg :-) |
|
||||
|
Citação:
Estou a tentar modificar o código acima para uma situação semelhante. Tenho dois ficheiros de entrada. O primeiro arquivo (Datastores) é um CSV com amigável nomes na primeira coluna e UUIDs na segunda coluna. O segundo arquivo (VMS) é uma lista de arquivos com o caminho completo utilizando o UUID. Por exemplo: ----- ----- Datastores.csv nome amigável 1, UUID1 nome amigável 2, UUID2 nome amigável 3, UUID3 etc ----- ----- Datastores.csv ----- ----- VMs.txt / folder/UUID3/vm1.vmx / folder/UUID2/vm2.vmx / folder/UUID1/vm3.vmx / folder/UUID3/vm4.vmx etc ----- ----- VMs.txt O que eu estou procurando é a produção que tem o seguinte aspecto: ----- ----- Output.txt / pasta / nome amigável 3/vm1.vmx / pasta / nome amigável 2/vm2.vmx / pasta / nome amigável 1/vm3.vmx / pasta / nome amigável 3/vm4.vmx etc ----- ----- Output.txt A amostra awk não é intuitivo para mim, mesmo após a leitura de outra explicação e indo ao longo dos O'Rielly bolso referência. O caso de uma das entradas, não necessita de ser alterada - se houver um problema com o processo correspondente, então eu tenho outras questões a tratar. Obrigado pela vossa ajuda antecipadamente. |
|
||||
|
oi gente!
Estou de novo a shell script .. Eu queria saber abt sed comando e como ele funciona? aqui está o que eu quero fazer, quero pesquisa string original export.txt no arquivo que é: exportação mibs \u003d \ opt \ mymibs \ Gostaria de substituí-lo por exportação mibs \u003d \ opt \ new_mibs \ Por favor ajudem com isso thanks in advance Última edição por allrise123; em 05/23/2009 05:17.. |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|