고객 목록, "코드", "이름", "위치", "기타"가 있고 직원에게 고객의 코드를 제공한 다음 변경하려는 필드를 제공하도록 요청하는 기능을 만들고 싶습니다. "위치" 등을 자신이 원하는 것으로 바꾸세요.
변경할 필드 유형을 어떻게 지정합니까?
고객 파일 예:
ID,BUSINESSNAME,ADDRESS,TOWN
01,starbucks,rubin 3,memphis
예를 들어 ID를 읽고 01
어떤 필드를 변경하고 싶은지 address
, 새 주소를 물어보고 rubin 2
파일로 저장하고 싶습니다.
이제 새로 수정된 파일은 다음과 같아야 합니다.
ID,BUSINESSNAME,ADDRESS,TOWN
01,starbucks,rubin 2,memphis
답변1
read
and를 사용하는 기본 접근 방식 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