Ich arbeite an einem Skript, das die Daten analysieren muss, die von einem ps
-Befehl zurückgegeben werden. Auf Redhat/Centos weiß ich, dass es einfach ist, das Spaltentrennzeichen zu spezifizieren, aber mit dem BSD version of PS ist es nicht so einfach.PS-Spaltenbegrenzer auf OSX (BSD) setzen
Ich weiß, es wäre möglich, awk
, sed
oder tr
zu verwenden Leerzeichen zu ersetzen mit dem, was Charakter, aber sagen wir mal das Format args
oder comm
irgendwo in der Mitte hat, wäre der Ausgang sein:
$ ps -o pid,ppid,args,user | head
PID PPID ARGS USER
60140 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
60144 60141 -bash jdoe
55574 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
55576 55575 -bash jdoe
20710 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
20712 20711 -bash jdoe
66703 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
66707 66704 -bash jdoe
66881 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
Wie Sie sehen können, können die Daten in der Spalte args
Leerzeichen enthalten, wodurch das Ganze ausgeschaltet wird.
Was wirklich irritierend ist, fand ich tatsächlich eine Lösung, die gut zu funktionieren schien, ohne etwas wie args
am Ende der Ausgabe zu tun, aber ich kann mich nicht an die Lösung erinnern, oder finde es wieder.
Ich dachte, dass es vielleicht möglich wäre, die Spaltenüberschriftzeile zu verwenden, um die Breite der Spalten zu bestimmen, da die Überschriften mit den Spaltendaten übereinstimmen, aber ich bin mir sicher, dass es eine einfachere Lösung gibt.
Jede Hilfe wäre willkommen. Vielen Dank!
Warum gerade 'Sie können nicht als letzte Spalte args' und Lesen von Daten mit' Awk'? Kannst du es so benutzen? – Inian
Das einzige idiotensichere Trennzeichen wäre ein Nullzeichen. – chepner
Was möchten Sie eigentlich mit diesen Daten machen? Was ist dein Endspiel? Lassen Sie uns sehen, ob wir herausfinden können, wie Sie Ihr Ziel erreichen können, anstatt Sie einfach abzuschicken, was der falsche Weg sein könnte. – ghoti