파일에서 수정할 필드 유형을 지정하세요.

파일에서 수정할 필드 유형을 지정하세요.

고객 목록, "코드", "이름", "위치", "기타"가 있고 직원에게 고객의 코드를 제공한 다음 변경하려는 필드를 제공하도록 요청하는 기능을 만들고 싶습니다. "위치" 등을 자신이 원하는 것으로 바꾸세요.

변경할 필드 유형을 어떻게 지정합니까?

고객 파일 예:

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

예를 들어 ID를 읽고 01 어떤 필드를 변경하고 싶은지 address, 새 주소를 물어보고 rubin 2파일로 저장하고 싶습니다.

이제 새로 수정된 파일은 다음과 같아야 합니다.

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

답변1

readand를 사용하는 기본 접근 방식 sed(오류 검사 없음):

#!/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

관련 정보