我在Linux中有一个像
的文件/test/something/test2/2013-10-12/file_123
/test/123456/file_123
/test/test2/test3/test4/something/2013/file_123
我想在Linux中将其更改为以下格式
/test/something/test2/????-??-??/file_123
/test/??????/file_123
/test/test2/test3/test4/something/????/file_123
我可以使用sed实现这个目标吗?
答案 0 :(得分:3)
kent$ awk -F/ -v OFS='/' '{for(i=1;i<NF;i++)if($i~/[0-9][0-9]/)gsub(/[0-9]/,"?",$i);}7' file
/test/something/test2/????-??-??/file_123
/test/??????/file_123
/test/test2/test3/test4/something/????/file_123
答案 1 :(得分:0)
如果要点就是删除数据:
awk -F/ '{$(NF-1)="????"}1' OFS=/ file
/test/something/test2/????/file_123
/test/????/file_123
/test/test2/test3/test4/something/????/file_123
答案 2 :(得分:0)
sed ": do
s|[0-9]\([^/]*/[^/]*\)$|?\1|
t do" YourFile
替换路径的n-1部分中的任何数字