我的任务是在多个服务器上的配置文件中搜索并连接损坏的字符串:
配置文件中参数较多,其中一段断行很少,需要连接。
配置文件中的损坏字符串类似于以下示例中的第二行和第三行:
rconfigure En32zrt 10.xx.xx.xx/24
rconfigure
En32zrt 10.10.xx.xx/24
rconfigure En32zrt 10.xx.xx.xx/24
它应该看起来像,我需要加入上面示例中的第二行和第三行,如下所示:
rconfigure En32zrt 10.xx.xx.xx/24
rconfigure En32zrt 10.10.xx.xx/24
rconfigure En32zrt 10.xx.xx.xx/24
希望我说清楚了。请指教。
编辑: 字符串不一定以 /24 结尾。也可以是这样的:
rconfigure En32zrt 10.xx.xx.xx
rconfigure
En32zrt 10.10.xx.xx/24
rconfigure En32zrt 10.xx.xx.xx
其中应该改为:
rconfigure En32zrt 10.xx.xx.xx
rconfigure En32zrt 10.10.xx.xx/24
rconfigure En32zrt 10.xx.xx.xx
答案1
如果您知道所有输出行都应包含 3 个单词(如 OP 所示),您可以执行以下操作:
tr ' \t' '\n' <some_file |
grep -v '^$' |
paste -d ' ' - - -
笔记:
tr
将任何空白分隔符转换为换行符grep
删除空行grep
当你留下一个单词列表后,每个单词都在自己的行上paste
使用给定的分隔符重复将 3 行合并为一行