2016-07-26 64 views
-1

第一欄後,我有相似的文本配置文件:加:用awk或者sed

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

我需要//後提取領域,但增加:第一列 這樣後:

NASserver:/vol/FS01/share/ 

我曾嘗試:

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

其工作和生產:

NASserver:/vol/FS01/share/ 

,但這將在的情況下工作,即NAS名稱將需要打印$ 5,它不會工作:

意義:例如,如果BACKUP字符串包含第5'FILD以上這是我awk將不行

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

我怎麼能得到相同的結果與AWK爲BACKUP字符串 任何長度我會得到

NASserver:/full volumes path 

回答

0

如果你的格式是固定的說:「BACKUP = NFS:// ......」,那麼這下面的代碼將任意長度

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

如果您的格式可能會有所不同,我的意思是做例如:「FTP = ftp:// ...」,則