我有一个客户列表,“代码”,“名称”,“位置”,“等”,我想创建一个功能,要求员工提供客户的代码,然后提供他/她想要更改的字段。例如“位置”,然后将其替换为他或她想要的内容。
如何指定要更改的字段类型?
客户文件示例:
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