如何使用sed替换字符串同时保留空白字符?
使用sed移除路径前缀并保留空白字符
方案1:针对固定前缀./crud/的替换
如果需要精准移除./crud/这个固定前缀,直接用这条sed命令:
sed 's/\.\/crud\///g' input_file
方案2:针对通用的./*/前缀(任意一级目录)
如果要适配任意./xxx/格式的前缀(比如./abc/、./test/这类结构),用正则匹配非斜杠字符实现通用替换:
sed 's/\.\/[^\/]*\///g' input_file
命令解释
s/:启动sed的替换模式\.\/:转义匹配./(点和斜杠是正则特殊字符,必须加反斜杠转义才能匹配原字符)[^\/]*:匹配任意数量的非斜杠字符,对应路径中的一级目录名部分\/:匹配结尾的///:将匹配到的前缀内容替换为空字符串g:全局替换标记,确保一行中所有符合条件的前缀都会被移除,而非只替换第一个匹配项
效果验证
输入内容:
./crud/Dailies: path: ./crud/Dailies
执行命令后输出:
Dailies: path: Dailies
内容的提问来源于stack exchange,提问作者howsmydriving42
相关产品推荐
相关产品推荐

