Mein Skript verwendet eine Eingabedatei wie diese
user:tag:count
Es nimmt den Benutzer, sucht ihn auf einer Seite und gibt die URL aus, die auf den Benutzer verweist. Nachdem dies erledigt ist, sollte die Eingabedatei geändert werden in
user:tag:count:URL
Das Skript ist eine While-Schleife, die bei i=Zeile1 beginnt und bei der letzten Zeile endet. Die Zeile, an der die Schleife arbeitet, ist also in $i gespeichert und die erhaltene URL ist in $url gespeichert.
Normalerweise würde ich das mit sed machen, aber ich hatte damit Probleme, wenn die Variable "/" enthält. Ich habe es mit awk versucht:
awk -v iv="$i" 'NR == iv' input | awk -v var="$count" '{print $0 ":"var}'
Es fügt die URL in der richtigen Zeile hinzu, aber es hilft natürlich nicht dabei, die Eingabedatei so zu bearbeiten, wie ich es möchte.
Gibt es eine Möglichkeit, die beiden Awks zu einem zusammenzuführen, damit ich die Datei bearbeiten kann?
Antwort1
Verwenden Sie es einfach sed
mit einem Nicht- /
Trennzeichen. Beispiel:
sed 's|foo|bar|'
Aber ja, Sie können auch die beiden awk-Befehle verbinden:
awk -v iv="$i" -v var="$count" 'NR == iv{print $0 ":"var}'