小白求问这个脚本哪里错了(关于awk和sed)

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
dan.elpt
帖子: 82
注册时间: 2009-05-30 21:21

小白求问这个脚本哪里错了(关于awk和sed)

#1

帖子 dan.elpt » 2012-09-27 16:18

就这么几行我是在不知道怎么改了,就是不对
目的是:文件1是我要修改的目标文件,文件2是一个人名的中英文对照,第一列是英文,第二列是中文,两个文件都是csv,我希望将文件1中出现的英文人名替换为文件2对应的中文名,写的脚本如下

代码: 全选

while read line
do
	e_name=`echo $line |awk -F ',' '{print $1}'` c_name=`echo $line|awk -F ',' '{print $2}'`
#	echo "e_name =" $e_name
#	echo "c_name =" $c_name
	sed -i "s/$e_name/$c_name/g" $1 
done <$2
我用那两个注释行看到e_name和c_name两个变量赋值是正确的,但是每次运行都显示
sed: -e expression #1, char 21: unterminated `s' command
要怎么修改呢?

之前有一次不知道怎么弄对了,不报错,但是每个中文名字后面都多了个换行
怎么修改这个脚本呢?
谢谢大家!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 小白求问这个脚本哪里错了(关于awk和sed)

#2

帖子 eexpress » 2012-09-27 16:23

echo "xklkwx" |sed -e "s/$e_name/$c_name/g"
● 鸣学
头像
dan.elpt
帖子: 82
注册时间: 2009-05-30 21:21

Re: 小白求问这个脚本哪里错了(关于awk和sed)

#3

帖子 dan.elpt » 2012-09-27 17:53

eexpress 写了:echo "xklkwx" |sed -e "s/$e_name/$c_name/g"
echo "xklkwx" 是干什么?
后半部分和我相比就是吧-i换成-e 也报错,报错内容一样
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 小白求问这个脚本哪里错了(关于awk和sed)

#4

帖子 YeLee » 2012-09-27 20:48

i的不是in-place么?怎么跟expression混淆了? :em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
回复