A execução do script mostra os problemas:
- A linha 8 é um erro de sintaxe, a palavra
if
por si só. - A linha 21 é um erro de sintaxe, a palavra
1
por si só.
Comentando isso, há um {
pendente na linha 6.
Talvez isso tenha sido copiado de algum script de trabalho,
onde a interessante declaração de coleta de registros na linha 3 é processada na conclusão.
Corrija o script prefixando o {
com END
.
Altere o 1
na linha 21 para um }
.
Agora (pelo menos) o script está sintaticamente correto e não fornece erros. O resultado é assim:
#!/usr/bin/awk -f
# Collect the translations from the first file.
NR==FNR { repl[$1]=$2; next }
# Step through the input file, replacing as required.
END {
#if
for ( string in repl ) {
if (length(string)==0)
{
echo "error"
}
else
{
sub(string, repl[string])
}
}
#if string is null-character,then we have to add rules,
#if repl[string] is null-character,then we have to delete rules or put # in front of all lines until we reach </rules> also
# And print.
}
# to run this script as $ ./bash_script.sh input_chk.txt file.conf
No entanto, não faz nada útil. Fazer isso que seria pelo menos mais uma pergunta.