#!/bin/bash
echo "Pattern is ${1}"
awk -F'=' -v section="[$1]" -v f=0 '$0==section {f=1} $0=="" {f=0} f==1 {print}' input
Eu percebo que isso foi perguntado muitas vezes e muitas das respostas foram bem escritas, mas estou perdendo alguma coisa com minha pequena tarefa. Tentando passar uma variável Shell (um argumento neste caso) para awk para pegar uma seção de um arquivo de texto.
cat ~/work/junk.txt
[Section1]
innerline1
innerline2
innerline3
[Section2]
innerline4
innerline5
innerline6
Estou tentando fazer um script para usar o argumento fornecido ($ 1) para passar como padrão para corresponder ao awk.
#!/bin/bash
echo pattern is $1
# record separator (RS) is the next blank line
awk -v var="$1" {print '/var/'} RS= ~/work/junk.txt
Se $ 1 é o argumento fornecido como "Section1", espero que esta saída:
[Section1]
innerline1
innerline2
innerline3
Eu acho que estou perto, mas muito distante.
Obrigado por qualquer ideia.