Especifique o tipo de campo para modificar em um arquivo

1

Eu tenho uma lista de clientes, "código", "nome", "localização", "etc" e eu quero fazer uma função que pede ao empregado para dar o código do cliente e depois o campo que ele quer mudar. Por exemplo, "localização" e, em seguida, substitua-o pelo conteúdo que ele deseja.

Como posso especificar o tipo do campo a ser alterado?

Exemplo de arquivo de clientes:

ID,BUSINESSNAME,ADDRESS,TOWN
01,starbucks,rubin 3,memphis

Eu quero ler o ID por exemplo 01 então pergunte qual campo eu quero mudar por exemplo, address e o novo endereço, por exemplo, rubin 2 e, em seguida, salve-o no arquivo.

O novo arquivo modificado deve ficar assim agora:

ID,BUSINESSNAME,ADDRESS,TOWN
01,starbucks,rubin 2,memphis
    
por christos 03.03.2015 / 22:01

1 resposta

0

Uma abordagem básica com read e sed (e sem verificação de erros):

#!/usr/bin/env bash

read -p "Enter Client ID: " client
read -p "Enter field to change: " field
read -p "Enter new data: " data

case "$field" in 
    *name) field=2 ;;
  address) field=3 ;;
     town) field=4 ;;
esac

sed -i "/^$client/ {s/[^,]*/$data/$field}" datafile
    
por 04.03.2015 / 00:34