ファイルで変更するフィールドの種類を指定してください。

ファイルで変更するフィールドの種類を指定してください。

顧客リスト、「コード」、「名前」、「場所」、「その他」があり、従業員に顧客のコードを提供し、変更したいフィールドを提供するように要求する機能を作成したいと思います。 「場所」などを自分が望むものに変えてください。

変更するフィールドの種類をどのように指定しますか?

顧客ファイルの例:

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

関連情報