自动修复 rsnapshot 配置:用制表符替换空格

自动修复 rsnapshot 配置:用制表符替换空格

rsnapshot它的配置非常挑剔:命令必须用制表符而不是空格分隔。

如果你使用

rsnapshot configtest

您看到了错误,但如何自动修复错误并在出现问题的区域中用制表符替换多个空格?

我可以使用 sed:

sed s/\s+/\t/g

但这会改变整个文件。

答案1

基于网上的一些任意文件(12),我想出了一个 sed 语句,它用一个选项卡替换看起来像命令(字母和下划线)的文本后的空格:

sed 's/^\([a-z_][a-z_]*\)  */\1\t/' input > output

转义括号捕获命令(一个或多个字母和下划线,从行首 ( ^) 开始),然后需要一个或多个空格来跟随该命令;这些模式将被匹配的命令 ( \1) 和制表符替换。这个模式匹配跳过注释掉行(因为#不是字母或下划线)。

相关内容