|
|
|
|
site google
|
|||||||
| Fóruns | Registar | Blog | Man Pages | Fórum Regimento | Ligações | Álbuns | FAQ | Usuários | 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. |
![]() |
|
|
Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|||
|
Extrair um conteúdo específico de um arquivo
Meu arquivo de entrada: Código:
>sequence_1 ASSSSSSSSSSSDDDDDDDDDDDCCCCCCC ASDSFDFFDFDFFWERERERERFSDFESFSFD >sequence_2 ASDFDFDFFDDFFDFDSFDSFDFSDFSDFDSFASDSADSADASD ASDFFDFDFASFASFASFAFSFFSDASFASFASFAFS >sequence_3 VEDFGSDGSDGSDGSDGSDGSDGSDG dDFSDFSDFSDFSDFSDFSDFSDFSDF SDGFDGSFDGSGSDGSDGSDGSDGSDG Meu arquivo de saída desejado: Código:
>sequence_2 ASDFDFDFFDDFFDFDSFDSFDFSDFSDFDSFASDSADSADASD ASDFFDFDFASFASFASFAFSFFSDASFASFASFAFS Eu só quero extrair o cabeçalho do sequence_2 e seu conteúdo. Alguém ainda tem idéia de como fazer isso? Awk resposta será mais rápida se tem uma longa lista de conteúdo? Obrigado por todas as suas sugestões
Última edição por Radoulov; em 10-07-2009 07:55.. Motivo: Utilize tags de código, por favor! |
| Links Patrocinados |
|
|
|
||||
|
Usar basbaque, nawk ou /usr/xpg4/bin/awk ligado Solaris: Código:
awk 'END { if (r ~ p) print r }
/^>sequence/ { if (r ~ p) print r; r = x }
{ r = (r ? r RS : x) $0 }
' p="sequence_2" infile---------- Post atualizado no 12:47 PM ---------- atualização anterior foi no 12:41 PM ---------- Sim, thegeek's sed abordagem deve ser mais rápido. Supondo que os números de seqüência progressiva com formato fixo, você pode adicionar parâmetros: Código:
start="sequence_2"
stop="$(( ${start##*_} + 1 ))"
sed -n "
/$stop/q
/$start/,/$stop/p
" infile---------- Post atualizado às 12:51 ---------- atualização anterior foi no 12:47 PM ---------- Uma abordagem semelhante com awk: Código:
awk '$0 ~ stop { exit }
$0 ~ start, $0 ~ stop {
if ($0 !~ stop) print
}' start="sequence_2" \
stop="$(( ${start##*_} + 1 ))" infile---------- Post atualizado às 12:54 ---------- atualização anterior foi às 12:51 ---------- Observe que o sed eo segundo awk Versões assumir uma entrada em numérico (número de seqüência) condenar apenas como o exemplo no post original. |
| Bits Awarded / Cobrado para radoulov para este Post | |||
| Data | Usuário | Comentário | Valor |
| 10-07-2009 | danmero | awk '/ _3 $ / (exit) / _2 $ /, 0' infile | 666 |
|
|||
|
Oi thegeek, Obrigado por sua sugestão. É trabalhado agradável. Você pode explicar mais ou menos sobre o motivo que você escreve o código?! Código:
sed -n -e '/>sequence_3/q' -e '/>sequence_2/,/>sequence_3/p' t1 Por exemplo, se eu tenho longa lista de conteúdos e eu só quero extrair o conteúdo específico com base no cabeçalho interessados, posso usar o sed código que você recomendaria também? Citação:
|
| Links Patrocinados | ||
|
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| para extrair o valor específico em um arquivo | techmoris | Programação Shell Script e | 3 | 08-14-2009 06:46 |
| Remover conteúdo específico em um arquivo | k9cheung | Programação Shell Script e | 1 | 08-10-2009 04:37 |
| para encontrar conteúdo específico no arquivo do diretório e listar apenas nomes | madhu_Jagarapu | AIX | 2 | 12-23-2008 02:13 |
| Recuperar o conteúdo entre linhas específicas ina arquivo | chennaitomcruis | Programação Shell Script e | 4 | 04-19-2008 11:18 |
| Conteúdo extrato de um arquivo usando awk | nr_shan | Programação Shell Script e | 5 | 12-19-2007 05:22 |