Você pode tentar este comando sed
:
$ sed '/[ \t]GROUP/ s/{*$/ {/' scst.conf.test > greg.scst.out
Isso provavelmente é fácil e algo não está clicando em mim e na minha falta de café agora. Eu tenho um arquivo com várias linhas que começam com uma aba, em seguida, a palavra GROUP algo {
Algumas dessas linhas, por alguma razão, soltam a chave em algumas condições. A solução rápida é usar sed / awk para anexar o colchete a essa linha, mas não as linhas onde o suporte já existe. Eu estou no meio do caminho com, mas como você pode ver isso irá acrescentar a chave aberta a todas as linhas que começam com uma aba e GROUP.
sed '/[ \t]GROUP/ s/$/ {/' scst.conf.test > greg.scst.out
Verificando GROUP something
sem {
e fazendo referência novamente, em seguida, substituindo por {
.
sed 's|\([ \t]GROUP.*\)[^{]$| {|' yourfile
Com o seguinte arquivo de teste como test.txt
:
GROUP blah {
GROUP blah {
GROUP blah
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
O script sed a seguir faz o negócio:
sed -r 's/\tGROUP(.*)[^{]$/&{/' test.txt
Com a saída assim:
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
GROUP blah {
Isso está correto? O que ele faz é procurar por linhas que tenham tab-> GROUP, mas não tenham {no final. Substitui-o pela linha correspondente (que é o que o & faz) e acrescenta um {depois.