/ / Utilizzando AWK o SED come posso rimuovere qualsiasi riga in cui il conteggio dei caratteri della prima colonna non è uguale a 13 - bash, awk, sed

Usando AWK o SED come posso rimuovere qualsiasi riga in cui il conteggio dei caratteri della prima colonna non è uguale a 13 - bash, awk, sed

Utilizzando AWK o sed come posso rimuovere qualsiasi riga in cui il timestamp (prima colonna) non è uguale a 13 caratteri numerici ignorando la prima riga.

Prima:

timestamp,pageNo,description
1451317591621,01,Home Page Request
14513,Home Page Request
1451317591623,03,Home Page Request
1451317,04,Home Page Request
1451317591625,05,Home Page Request

Dopo:

timestamp,pageNo,description
1451317591621,01,Home Page Request
1451317591623,03,Home Page Request
1451317591625,05,Home Page Request

risposte:

1 per risposta № 1

utilizzando awk (richiede gawk 4+ o 3+ con l'opzione --re-interval)

awk -F, "$1~/^[0-9]{13}$/||NR==1" file

utilizzando sed

sed "/^[0-9]{13},/p;1p;d" file

2 per risposta № 2

utilizzando sed, passa se il numero di riga è uno o il primo campo è composto esattamente da tredici cifre; altrimenti, elimina.

sed -r -e "1b" -e "/^[0-9]{13},/b" -e d file

Utilizzando Awk, allo stesso modo, stampa se il numero di riga è uno o il primo campo è composto da tredici caratteri e tutti i numeri.

awk -F , "NR == 1 || (len($1) == 13 && $1 ~ /^[0-9]*$/)" file

0 per risposta № 3
awk -F, "NR==1 || (length($1) == 13 && $1+0 == $1)" file

0 per risposta № 4

Se Perl è un'opzione:

perl -F, -ane "print if $F[0] =~ /^[0-9]{13}$/ or $. == 1" file

Vengono utilizzate queste opzioni della riga di comando:

  • -n eseguire il ciclo attorno a ciascuna riga del file di input
  • -a modalità autosplit - divide le linee di input in @F Vettore. Il valore predefinito è la divisione su spazi bianchi.
  • -e eseguire il codice perl
  • -F modificatore autosplit, in questo caso si attiva ,

$. è il numero di riga
@F è la matrice di parole in ogni riga, indicizzata a partire da $F[0]

produzione:

timestamp,pageNo,description
1451317591621,01,Home Page Request
1451317591623,03,Home Page Request
1451317591625,05,Home Page Request