删除字符串中的字符/插入字符

时间:2019-01-04 16:35:50

标签: bash ubuntu

我需要删除第三个“:”(冒号)或将其替换为空格。我不能在某个索引处执行此操作,因为条目的长度不同。

u:Testuser:rw:/home/user1/temp
g:Testgroup:-:/home/user2/temp

结果应如下所示:

u:Testuser:rw /home/user1/temp
g:Testgroup:- /home/user2/temp

是否可以1)删除特定字符,2)在特定字符之前/之后插入一个字符? 我找不到解决方案,很不幸,我是一个初学者。

3 个答案:

答案 0 :(得分:2)

感谢您的回答,我自己做了

g:Testgroup:-:/home/user2/temp | sed s/':'/' '/3

答案 1 :(得分:0)

肮脏的解决方案:

$ cat 54042857.txt
u:Testuser:rw:/home/user1/temp
g:Testgroup:-:/home/user2/temp

$ awk -F ':' ' { print $1":"$2":"$3" "$4 } ' 54042857.txt 
u:Testuser:rw /home/user1/temp
g:Testgroup:- /home/user2/temp

答案 2 :(得分:0)

使用parameter expansion

$ foo='u:Testuser:rw:/home/user1/temp'
$ printf '%s\n' "${foo%":${foo#*:*:*:}"} ${foo#*:*:*:}"
u:Testuser:rw /home/user1/temp