Ich habe ein Skript, das jedes Mal zwei Zeilen als Ausgabe generiert. Ich bin wirklich nur an der zweiten Zeile interessiert. Außerdem interessiert mich nur der Text, der zwischen einem Paar # in der zweiten Zeile steht. Zusätzlich wird zwischen den Hashes ein weiteres Trennzeichen verwendet:^A. Es wäre toll, wenn ich auch auseinander jeden Teil des Textes brechen kann, dass^A-begrenzt ist (Beachten Sie, dass^A SOH Sonderzeichen und kann mit Strg-A eingegeben werden)Die n-te Zeile der Textausgabe erhalten
Antwort
your.program | tail +2 | cut -d# -f2
sollten Sie 2/3 des Weges.
bash:
read
read line
result="${line#*#}"
result="${result%#*}"
IFS=$'\001' read result -a <<< "$result"
$result
ist jetzt ein Array, das die Elemente enthält, die Sie interessiert sind gerade Rohr der Ausgabe des Skripts zu diesem..
output | sed -n '1p' #prints the 1st line of output
output | sed -n '1,3p' #prints the 1st, 2nd and 3rd line of output
Ihre Antwort ist besser. Nicht sicher, warum ein anderer akzeptiert wird. Sehr verwirrend. – Fuser97381
Genau das habe ich gesucht. Vielen Dank! @ n-1-1 Wissen Sie, ob es möglich ist, mit sed die Zeilen 1,3,5 statt 1-5 anzugeben? Ich konnte selbst nichts finden. – Olshansk
Ich würde wahrscheinlich awk dafür verwenden.
your_script | awk -F# 'NR == 2 && NF == 3 {
num_tokens=split($2, tokens, "^A")
for (i = 1; i <= num_tokens; ++i) {
print tokens[i]
}
}'
Dies sagt
1. Set the field separator to #
2. On lines that are the 2nd line, and also have 3 fields (text#text#text)
3. Split the middle (2nd) field using "^A" as the delimiter into the array named tokens
4. Print each token
Offensichtlich ist dies eine Menge von Annahmen macht. Sie müssen es möglicherweise optimieren, wenn beispielsweise # oder^A in den Daten legitim erscheinen kann, ohne Trennzeichen zu sein. Aber so etwas sollte dir den Anfang machen. Sie müssen vielleicht nawk oder gawk oder so etwas verwenden, ich bin mir nicht ganz sicher, ob plain awk das Teilen eines Steuerzeichens verarbeiten kann.
ist hier eine mögliche Lösung awk
awk -F"#" 'NR==2{
for(i=2;i<=NF;i+=2){
split($i,a,"\001") # split on SOH
for(o in a) print o # print the splitted hash
}
}' file
Verbesserung Grumdrig Antwort:
your.program | head -n 2| tail -1 | cut -d# -f2
- 1. Oracle SQL Update jede nte Zeile
- 2. Wählen Sie jede nte Zeile in SQLite3
- 3. Wie bekomme ich die nte Reihe von Spark RDD?
- 4. Nte Perzentil Berechnungen in Postgresql
- 5. Parse Texteingabe und Textausgabe erhalten (nicht String) mit Parsec3
- 6. Kann nicht AWS Lambda-Funktion erhalten einzuloggen (Textausgabe) zu Cloudwatch
- 7. Zentrale Textausgabe von Graphics.DrawString()
- 8. XSLT-Textausgabe entweichen Zeichen
- 9. Python Terminal-Textausgabe Formating
- 10. DXGI Textausgabe Spur
- 11. Ändern der Farbe und der Unterstreichung Textausgabe der Excel-Formel
- 12. Parsing grundlegende Textausgabe von PHP
- 13. JTextPane/JEditorPane und seltsame Textausgabe
- 14. lösche jede nte Seite eines PDFs
- 15. Erhalten Sie die ID der letzten eingefügten Zeile ORACLE/PHP
- 16. XSL Textausgabe - trimmen Leerzeilen und führende Leerzeichen
- 17. eine einzelne Zeile aus der Tabelle erhalten
- 18. Wert der Zeile in Datentabelle erhalten C#
- 19. Wie formatieren Sie komplexe Zahlen für die Textausgabe in Matlab
- 20. Windows Forms mit asynchronem Socket; keine Textausgabe
- 21. SCONS: Speichern/Redirect gcc Textausgabe (Warnungen)
- 22. Wie erhalten Sie die Ergebnisse der Shell-Befehl Zeile für Zeile für sentese?
- 23. Bash erkennen farbige Textausgabe in Bash
- 24. XSLT - Probleme mit < in Textausgabe haben
- 25. Textausgabe von mehreren Arrays in JavaScript erstellen
- 26. InflactionException für Zeile 21 erhalten
- 27. Ordne ein Array neu, indem du jedes nte Element nimmst
- 28. So erhalten Sie die ausgewählte Zeile von einem TreeView
- 29. In VB6, wie die zuvor ausgewählte Zeile in Mshflexgrid erhalten?
- 30. wie Wert der ausgewählten Zeile in DropDown und Tabellenansicht erhalten
das beste Dienstprogramm geschnitten auf eine undeterminate Menge von Werten zu verwenden, die von^A begrenzt werden? – syker
Ich bin mir nicht sicher. Ich verstehe nicht wirklich, was dein Ziel in Bezug auf die^A's ist. Um sie in etwas anderes zu verwandeln? Zeilenumbrüche? – Grumdrig