Ho una domanda su sed. Da questo ingresso:Sed per cercare 2 pattern, se il primo pattern non esiste, stampare il secondo pattern
[/=TueGreen$58.30Orange5:36pmSat*=WedOrange$76.63Purple6:20pmTue]
[/=Thu6:06pm$09.05Blue11:32amMon/=Thu1:38am$56.41Red4:25amThu]
[/=Sun1:49pm$12.41Yellow2:51pmMon*=FriOrange$49.68Blue1:24pmTue]
[/=Sat11:58am$82.24Orange3:44amMon*=Thu1:08am$33.49Red8:21amSat]
devo fare un uscita:
$58.30
6:06pm$09.05
1:49pm$12.41
11:58am$82.24
Lo so, lo schema sembra così facile, ma, sto anche fallito nel trovare il modello di tempo. Perché l'ora è a volte 1 o 2 cifre.
Questo è il terzo giorno che sto imparando sed e cercando la risposta. Ho imparato Grep. Così facile se si usa grep. Ma questo incarico mi obbliga a usare sed. Finora, questo è il mio comando sed:
sed 's/.*\([0-9]*:[0-9]*\(am\|pm\)\).*/\1/' FILE
I risultati mostrano solo i minuti e am/pm. Ci sono molti schemi temporali in ciascuna riga dell'input. Ma il mio risultato mostra il modello dell'ultima volta in ogni riga. Come potete vedere qui sotto:
:20pm
:25am
:24pm
:21am
Dove ho sbagliato?
+1 per molto buona prima domanda, compresi i dati di esempio, risultati attesi, corrente di uscita, e .... rantolo, un tentativo da parte O.P. di aver risolto il proprio problema. Hmm, il tuo titolo non sembra corrispondere alla tua descrizione, ma che diamine, è la stagione delle vacanze. Buona fortuna e continua a postare! – shellter