Ich benutze awk, um eine Zeichenkette mit einem bestimmten Trennzeichen in ein Array aufzuteilen. Jetzt möchte ich eine Operation für jedes Element des Arrays durchführen.bash awk split string in array
Ich bin in der Lage ein einzelnes Element wie folgt zu extrahieren:
#! /bin/bash
b=12:34:56
a=`echo $b | awk '{split($0,numbers,":"); print numbers[1]}'`
echo $a
ich so etwas wie dies tun will:
#! /bin/bash
b=12:34:56
`echo $b | awk '{split($0,numbers,":");}'`
for(i=0;i<length(numbers);i++)
{
// perform some operation using numbers[i]
}
wie würde ich so etwas wie dies in der Bash Scripting tun?
Beachten Sie, dass dies die Positionsargumente in '$ @' überschreibt, also müssen Sie sie vor dem Ausführen des Befehls 'set' nach Bedarf speichern. – chepner
natürlich; Normalerweise setze ich komplexe Aufgaben in Funktionen, die ihren eigenen $ @ Kontext haben (das Abspeichern von "$ @" ist zu hässlich und fast unmöglich ohne Bashismen). – ensc