我有以下字符串
C:/data
D:/backups
C:/Users/Guest/old_data
F:/files/new
如何用/cygdrive/LOWERCASE_DRIVE_LETTER
替换前两个字符?
结果
/cygdrive/c/data
/cygdrive/d/backups
/cygdrive/c/Users/Guest/old_data
/cygdrive/f/files/new
答案 0 :(得分:4)
awk -F':' 'sub(/../,"/cygdrive/"tolower($1))' file
简要说明,
-F':'
:将“:”设置为字段分隔符。tolower($1)
:返回$ 1的小写字母sub(/../,"/cygdrive/"tolower($1))
:将前2个字符替换为“ / cygdrive /” tolower($ 1) 答案 1 :(得分:2)
请您尝试以下。
awk 'BEGIN{FS=OFS="/"}{sub(/:/,"",$1);$1=tolower($1);print "/cygdrive/" $0}' Input_file
答案 2 :(得分:2)
这可能对您有用(GNU sed):
sed 's/\(.\):/\/cygdrive\/\l\1/' file
通过将第一个字符后跟:
分组来记住。然后插入/cygdrive/
并小写该组,即第一个字符。