Ich habe 2 Variablen, i und j. Für jede Kombination der Variablen gibt es eine Textdatei, text.txt, mit Text in Leerzeichen getrennt angeordnet Spalten, zB:Bash extrahieren Zeilen aus Textdatei und fügen Sie zusätzliche Spalten mit der Variablen
string1 43245 7.45
string2 23452 9.34
string3 23652 2.57
Ich möchte folgendes tun: eine große Textdatei Stellen enthält alle Textdateien mit den hinzugefügten Variablen in zusätzlichen Spalten und einigen anderen zusätzlichen Spalten, die Text und nicht aus Variablen enthalten. Zum Beispiel
i = x01
j = y01
Dann sollte der Ausgang sein:
x01 y01 extrastring string1 43245 7.45
x01 y01 extrastring string2 23452 9.34
x01 y01 extrastring string3 23652 2.57
Ich habe versucht, so etwas wie:
awk '{$0="'"$i"' '"$j"' extrastring"$0}'1 $i/$j/text.txt >> newtext.txt
Das funktioniert nicht.
Edit: Ich muss wohl hinzufügen, dass dies in einem doppelten for-Schleife laufen soll:
for i in x01 x02 x03
do
for j in y01 y02 y03
do
awk '{$0="'"$i"' '"$j"' extrastring"$0}'1 $i/$j/text.txt >> newtext.txt
done
done
Edit: Ich habe versucht, dies basierend auf Sofan Antwort
for i in x01 x02 x03
do
for j in y01 y02 y03
do
cd $i/$j/
awk -v i="$i" -v j="$j" '{print i,j,"extrastring",$0}' text.txt >> newtext.txt
done
done
Leider es doesn‘ t arbeiten. Das Skript wird nicht ausgeführt.
So ist 'test.txt' konstant und Sie wollen es mit verschiedenen Spalten für jedes Paar von x01 .. y01 .. drucken? – fedorqui
Sorry, nein die Textdatei ist nicht konstant. Es gibt eine andere text.txt in jedem $ i/$ j/- Ordner, z.B. x01/y01/text.txt, x01/y02/text.txt, etc ... – Anders