Ich habe eine CSV-Datei Beispiel RecordCountTest.csv benannt, die wie folgt aussieht:Bash-Skript anhängen/einfügen Zeitstempel in CSV
Date Time Shift Record
26-06-2016 15:23:01 Shift2 000002
23-06-2016 09:06:24 Shift1 000001
Wenn ein GPIO-Pin verdrahtet Taste ein Bash-Skript-Befehl ausgeführt wird, gedrückt wird. Ich möchte ein einfaches AWK- oder Bash-Skript, das ich aufrufen kann, nachdem der Befehl ausgeführt wurde, das dokumentieren kann, dass es passiert ist und wann es verfolgt wird. Ich möchte dies tun, indem Sie eine Zeile an der Spitze (aber unter der Überschrift) mit dem aktuellen Datum (TT-MM-JJJJ), der aktuellen Zeit (HH: MM: SS) einfügen, die Verschiebung ist eine Variable, die durch die bestimmt wird Bash-Skript (und ich werde diese Frage in 90 Minuten posten, wenn ich es vorher nicht herausfinden kann), und dann den Datensatz um eins erhöhen und die Datei als RecordCountTest.CSV speichern. Ich würde SED bevorzugen, wenn das möglich ist, was ich gerade versuche zu lernen, und alle Vorschläge, die mir helfen könnten, die Syntax besser zu verstehen, aber alles akzeptieren wird, was in diesem Bash-Skript funktionieren kann, einschließlich AWK.
Ich habe zurückkehren nur geschrieben, zwei Fragen zu dieser Seite und Sie haben sie beide mit AWK Lösungen Karakfa beantwortet! Ich werde testen und ich denke, dass ich wahrscheinlich mehr Zeit damit verbringen sollte, AWK als SED zu lernen. Danke, für die schnelle Antwort. :) Bleib dran! In der letzten Zeile sollten die beiden Instanzen von 'Datei' beide durch die RecordCountTest.csv ersetzt werden, richtig? –
alles mit Mathematik und mehr als Textersetzung "awk" ist überlegen. "Datei" ist die Eingabedatei, das Ergebnis wird in eine temporäre Datei geschrieben, die dann die ursprüngliche Eingabe überschreibt. Wenn gleichzeitige Aktualisierungen möglich sind, benötigen Sie möglicherweise eine Lösung mit Sperren oder Ähnlichem. – karakfa
Ich legte es in ein Bash-Skript und es schrieb nichts die Datei. Die Datei enthält nur die bereits vorhandenen Daten. Das Skript sah so aus: #!/Bin/bash sudo awk -v OFS = "\ t" -vs = "$ {shift}" 'NR == 2 {druck strftzeit ("% d-% m- % Y "), strftime ("% H:% M:% S "), s, sprintf ("% 06d ", $ 4 + 1)} {$ 1 = $ 1} 1 '/ home/pi/RecordCountTest .csv $ –