我目前正在尝试使用 sed 查找和替换文件中的某些文本,对于正在查找/替换的术语,我正在尝试使用变量,但由于某种原因我无法让它们正常工作。变量由 c1-c9 组成,如下所示:
c1=$( echo "start time;project_start_time" )
c2=$( echo "start_time;project_start_time" )
c3=$( echo "end time;project_end_time" )
c4=$( echo "end_time;project_end_time" )
c5=$( echo "total time;project_total_time" )
c6=$( echo "total_time;project_total_time" )
c7=$( echo "project_id;project_ID" )
c8=$( echo "status;project_status" )
c9=$( echo "client_id;client_ID" )
c10=$( echo "employee_id;employee_ID" )
c11=$( echo "employee_name;employee_name" )
c12=$( echo "date created;date_created" )
c13=$( echo "date_created;date_created" )
并且包含 sed 部分的代码是:
while [ "$countc" -le 13 ]; do
real_string=$( eval echo "\$c$countc" | cut -d ';' -f 2 )
nc_string=$( eval echo "\$c$countc" | cut -d ';' -f 1 )
sed -e "s/$nc_string/$real_string/gI" phasef/"$count"p.csv #> phasef/"$count".csv
countc=$(( $countc + 1 ))
done
(脚本有更多代码,但无关紧要)当我运行脚本时,如果我告诉它在 while 循环移动时输出 real_string/nc_string,则变量被正确输出,real_string/nc_string 变量实际上正在被定义正确,但我不确定为什么 sed 没有正确读取它们。如果有人能指出我做错了什么,我将不胜感激,因为我已经尝试了几个小时来解决这个问题,谢谢!