Aqui está um script que funciona para uma pesquisa de nome. Eu estou usando um aqui documento (aka heredoc) em vez de um arquivo externo para entregar a lista para o loop while para que tudo esteja contido neste arquivo para facilitar a leitura. Você pode expandi-lo como quiser.
Leia man bash
para informações sobre comandos internos , (e procure no manual por coisas que eu fiz em negrito) que estou usando,
- Expansão de Substring para obter as partes da linha
- Correspondência Regular Expression para encontrar a correspondência = ~
- [[ ...]] para retornar um valor condicional (0 ou 1) dependendo da expressão interna
Aqui está o script:
read -p "Input Name: " SearchName
while read line
do
Name=${line:0:3}
Job=${line:3:7}
Salary=${line:10:5}
[[ $Name =~ $SearchName ]] && echo $Name $Salary
done << "end--"
BobJanitor20000
TedBuilder30000
NedFighter25000
end--
user@machine:~/tmp$ bash manipvar.sh
Input Name: ed
Ted 30000
Ned 25000
user@machine:~/tmp$