2016-07-26 32 views
-1

Ich habe Konfigurationsdatei mit ähnlichen Text:add: nach der ersten Spalte mit sed oder awk

BACKUP=nfs://NASserver/vol/FS01/share/ 

Ich brauche die Felder nach //, zu extrahieren, aber hinzufügen: nach der ersten Spalte wie folgt aus:

NASserver:/vol/FS01/share/ 

ich habe versucht:

cat file.conf |awk -F"//" /BACKUP/'{print $2}'|awk -F"/" '{print $1":""/"$2"/"$3"/"$4}' 

, die funktioniert und produzieren:

NASserver:/vol/FS01/share/ 

aber dies wird im Fall funktionieren, dass NAS Name 5 zu drucken, benötigt $ es wird nicht funktionieren:

Bedeutung: zum Beispiel, wenn BACKUP Zeichenfolge, die die 5'th fild oder mehr dieser mein awk enthalten nicht

arbeitet

dh

BACKUP=nfs://NASserver/vol/FS01/share/folder1/folder2 

wie kann ich gleiches Ergebnis mit awk für jede Länge der BACKUP Zeichenfolge ich erhalte erhalten

NASserver:/full volumes path 

Antwort

0

Wenn Ihr Format wird sagen festgelegt: "BACKUP = nfs: // ...." dann diese folgenden Code für jede Länge tun

cat file.conf | sed 's#BACKUP=nfs://\([^/]\+\)\(.*\)#\1:\2#g' 

Wenn Ihr Format variieren kann, ich meine, zum Beispiel: "FTP = ftp: // ...", dann

Verwandte Themen