Wählen Sie den Text zwischen bestimmten Spalten in jeder Zeile der Ausgabe - Android, Bash, Ausgabe, Schnitt

Ich habe eine Ausgabe wie:

xxxxxxxxxFOOxxxxxxxxxxxx
blablabl BAR lablblablaa
=========tst============

Was kann ich tun, um etwas zu haben wie:

FOO
BAR
tst

Welchen Befehl sollte ich nur für Anzeigetext zwischen einer bestimmten Spalte in allen Zeilen verwenden?

cut -d wird nicht funktionieren, weil es nicht das gleiche Trennzeichen in jeder Zeile ist.

PS: Es ist auf Android und wenigen Befehl verpasst ..

Danke für die Hilfe ...

Antworten:

1 für die Antwort № 1

cut -d wird nicht funktionieren, weil es nicht das gleiche Trennzeichen in jeder Zeile ist.

ja aber cut -c10-12 macht den Job und extrahiert nur das 10., 11. und 12. Zeichen jeder Zeile. Sie geben keine Beispiele für längere Zeilen an, daher ist nicht klar, was Sie in diesem Fall tun möchten.


0 für die Antwort № 2
String[] str = {"xxxxxxxxxFOOxxxxxxxxxxxx",
"blablabl BAR lablblablaa",
"=========tst============"};

for (String s : str) {
int half = s.length() / 2;
String cutted = s.substring(half - 3, half);
// or String cutted = s.substring(9, 12);
// => FOO, BAR, tst
}

0 für die Antwort № 3

Verwenden Sie eine einfache Methode wie folgt:

private static String selectBetween(String input, int numberOfCharacters) {
int startIndex = (input.length() - numberOfCharacters) / 2;
return input.substring(startIndex, startIndex + numberOfCharacters);
}

Und dann nennst du das einfach so: String output = selectBetween("123123ABC123123", 3);// output will be ABC