AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1109590
Accepted
deepblue_86
deepblue_86
Asked: 2019-01-15 02:14:34 +0800 CST2019-01-15 02:14:34 +0800 CST 2019-01-15 02:14:34 +0800 CST

extraindo números cujos comprimentos são fixos do arquivo de texto

  • 772

Eu tenho um arquivo de texto. Este arquivo inclui caracteres e números como segue:

ANKR00TUR_R_20183240000_01D_30S_MO.rnx:  2018    11    20    00    00    0.0000000     GPS         TIME OF FIRST OBS
brmu3350.14o:  2014    12     1     0     0    0.0000000     GPS         TIME OF FIRST OBS
KNY12040.14o:  2014     7    23     0     0    0.0000000     GPS         TIME OF FIRST OBS
rinex_quantity:grep "TIME OF FIRST OBS" * > time_of_first_epochs

Preciso extrair apenas números de 4 dígitos e armazená-los em outro arquivo da seguinte forma:

2018
2014
2014

Eu apliquei o seguinte código, mas ele extrai todos os números de 4 dígitos:

grep  -Po "\d{4}" data

2018
3240
2018
0000
3350
2014
0000
1204
2014
0000
text-processing
  • 2 2 respostas
  • 823 Views

2 respostas

  • Voted
  1. Best Answer
    Byte Commander
    2019-01-15T02:45:33+08:002019-01-15T02:45:33+08:00

    Seu grepcomando estava quase correto, basta ancorar o padrão para corresponder apenas se houver um limite de palavra antes ou depois dele.

    Os limites da palavra são padrões de comprimento zero que correspondem entre um caractere de palavra (letras, dígitos, sublinhado) e um caractere não-palavra (por exemplo, espaços, outra pontuação, final de linha e tudo mais).

    Em grep, você pode fazer isso envolvendo seu padrão com \b, ou usando a -wchave para habilitar a correspondência de palavras:

    $ grep -Po '\b\d{4}\b' data
    2018
    2014
    2014
    
    $ grep -Pow '\d{4}' data
    2018
    2014
    2014
    
    • 7
  2. aborruso
    2019-01-15T02:47:32+08:002019-01-15T02:47:32+08:00


    com Miller ( http://johnkerl.org/miller/doc ) é

    mlr --implicit-csv-header --pprint  cut -f 2 then label year input
    

    Como saída você terá

    year
    2014
    2014
    

    Minha entrada é

    brmu3350.14o:  2014    12     1     0     0    0.0000000     GPS         TIME OF FIRST OBS
    KNY12040.14o:  2014     7    23     0     0    0.0000000     GPS         TIME OF FIRST OBS
    

    Eu simplesmente extraí a segunda coluna com cut

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve