Alterar arquivo direto no Shell

Se precisar alterar um arquivo de alguns GB, deve ser inviável abri-lo no vi.
Esta alteração pode ser feita diretamente via sed, como no exemplo abaixo. Esta execução na verdade cria um outro arquivo (oculto) do tamanho do original durante o processo, então certifique-se antes de ter espaço livre suficiente.

[suporte@Baltazar ~]$ ls -lh MonitORA.sql
-rw-rw-r--. 1 suporte suporte 7,6G Jun 20 13:18 MonitORA.sql
[suporte@Baltazar ~]$ grep 'InnoDB' MonitORA.sql | grep -v INSERT
) ENGINE=InnoDB AUTO_INCREMENT=2015934 DEFAULT CHARSET=latin1;
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
) ENGINE=InnoDB AUTO_INCREMENT=1430177 DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
) ENGINE=InnoDB AUTO_INCREMENT=1648307 DEFAULT CHARSET=latin1;
[suporte@Baltazar ~]$ sed -i '/ENGINE=InnoDB/ s//ENGINE=MyISAM/g' MonitORA.sql
[suporte@Baltazar ~]$ grep 'InnoDB' MonitORA.sql | grep -v INSERT
[suporte@Baltazar ~]$ grep 'MyISAM' MonitORA.sql | grep -v INSERT
) ENGINE=MyISAM AUTO_INCREMENT=2015934 DEFAULT CHARSET=latin1;
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
) ENGINE=MyISAM AUTO_INCREMENT=1430177 DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM AUTO_INCREMENT=1648307 DEFAULT CHARSET=latin1;
[suporte@Baltazar ~]$

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.