顧客リスト、「コード」、「名前」、「場所」、「その他」があり、従業員に顧客のコードを提供し、変更したいフィールドを提供するように要求する機能を作成したいと思います。 「場所」などを自分が望むものに変えてください。
変更するフィールドの種類をどのように指定しますか?
顧客ファイルの例:
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