ich Daten wie unten haben:Einfügen eines neuen Linien mit fehlenden Werten in einem Array
2016-07-25:06 5
2016-07-25:07 1
2016-07-25:08 1
2016-07-25:09 2
2016-07-25:10 1
2016-07-25:11 1
2016-07-25:13 9
2016-07-25:14 1
In der obigen i Stunden von 00 bis bis 23 angezeigt werden soll, wie unten:
2016-07-25:00 0
2016-07-25:01 0
2016-07-25:02 0
2016-07-25:03 0
2016-07-25:04 0
2016-07-25:05 0
2016-07-25:06 5
2016-07-25:07 1
2016-07-25:08 1
2016-07-25:09 2
2016-07-25:10 1
2016-07-25:11 1
2016-07-25:12 0
2016-07-25:13 9
2016-07-25:14 1
2016-07-25:15 0
2016-07-25:16 0
2016-07-25:17 0
2016-07-25:18 0
2016-07-25:19 0
2016-07-25:20 0
2016-07-25:21 0
2016-07-25:22 0
2016-07-25:23 0
konnte Bitte lass es mich wissen, wie kann ich das mit awk erreichen?
Danke !!!
Sie können auch die Prozesssubstitution verwenden. Ich hätte die 'grep' geschrieben wie' grep -vf <(cut -d "" -f1 Datendatei) ', und die Sortierung wie' sort -n <(echo -e "$ {restliche}") Datendatei. Sie haben eine andere Lösung ohne 'grep' mit' uniq' und schauen sich die ersten Zeichen an: 'sort -r <(für i in 0 {0..9} {10..23}; echo" $ date: $ i 0 "; done) Datendatei | uniq -w 15 | sort' –
Sie können die for-Schleife einfacher machen mit 'for i in {0..23}; printf "% s:% 02d 0 \ n" $ Datum $ i; fertig, fügt das% 02d bei Bedarf eine Null hinzu. –
google UUOC, google missbilligte Backticks, und lesen [warum-ist-mit-einer-Shell-Schleife-zu-Prozess-Text-betrachtet-schlecht-Praxis] (http://unix.stackexchange.com/questions/169716/ why-is-using-a-shell-loop-to-process-text-betrachtet-schlechte-praxis) um einige, aber nicht alle Gründe zu verstehen, dies nicht zu tun. –