Hinzufügen einer URL am Ende einer bestimmten Zeile in einer Datei

Hinzufügen einer URL am Ende einer bestimmten Zeile in einer Datei

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 sedmit 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}' 

verwandte Informationen