sed 替换 (替换掉双引号)

有文本文件word.txt格式如下:INSERTINTO"word"("Word_ID","Word_Lib_ID","Word","Score","Created_Ti... 有文本文件 word.txt 格式如下:
INSERT INTO "word" ("Word_ID", "Word_Lib_ID", "Word", "Score", "Created_Time") VALUES (15100,52,'举报',0,'2011-11-25 05:00:27');
INSERT INTO "word" ("Word_ID", "Word_Lib_ID", "Word", "Score", "Created_Time") VALUES (15101,52,'卖国',0,'2011-11-25 05:00:27');
INSERT INTO "word" ("Word_ID", "Word_Lib_ID", "Word", "Score", "Created_Time") VALUES (15102,52,'官僚',0,'2011-11-25 05:00:27');

怎么用 sed 命令 替换上文中的 “ (双引号) 为空 ,并保存为新文件 word_to_mssql.txt
替换的结果为:
INSERT INTO word (Word_ID, Word_Lib_ID, Word, Score, Created_Time) VALUES (15100,52,'举报',0,'2011-11-25 05:00:27');
INSERT INTO word (Word_ID, Word_Lib_ID, Word, Score, Created_Time) VALUES (15101,52,'卖国',0,'2011-11-25 05:00:27');
INSERT INTO word (Word_ID, Word_Lib_ID, Word, Score, Created_Time) VALUES (15102,52,'官僚',0,'2011-11-25 05:00:27');
展开
 我来答
百度网友f1edbb8
2013-02-21 · TA获得超过1048个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:525万
展开全部
只定义修改范围为每行的 VALUES 之前 “ (双引号)

cat word.sed
h
{
s/"//g
s/\(.*\)VALUES.*/\1/
G
s/\(.*\)\n\IN.*\(VALUES.*\)/\1\2/
}

sed -f word.sed word.txt > word_to_mssql.txt

不好意思,刚才没仔细看,这一次应该不会错了,我自己试了一下
This is "a" and "a" is 1使用后变为This is a and "a" is 1

不过,word.txt的格式必须一直是上面的那种。。。
语句意思,我写在了评论里
诚恳回答,敬请选择
追问
非常感谢你的回答。谢谢!
不过我的执行不成功,提示 不是内部或外部命令,也不是可运行的程序或批处理文件;同时,我用了你写的第一次的方法,只能替换第一个和最后一个 " (双引号),中间的双引号无法替换掉。
我想加您为好友,但是百度改版了,不知道怎么加了,我的Q 260871542

恳请您帮帮我,我对这个是一点都不熟悉。
追答
cat word.sed的意思是显示word.sed的内容
你先创建一个文件叫做word.sed
然后将
h
{
s/"//g
s/\(.*\)VALUES.*/\1/
G
s/\(.*\)\n\IN.*\(VALUES.*\)/\1\2/
}
复制到word.sed
然后在命令行中写
sed -f word.sed word.txt > word_to_mssql.txt

对了,你也可以用\n来分离语句,然后用s修改前半句,之后用N追加后半句

sed 's/VALUES/VALUES\n/' word.txt |sed '/VALUES/s/"//g' | sed '$!N;s/VALUES\n/VALUES/' > word_to_mssql.txt
董琎毅
2013-02-21
知道答主
回答量:36
采纳率:0%
帮助的人:29.5万
展开全部
djy@game-rd10:~> echo '("Word_ID","Word_Lib_ID")'|sed -r 's/\("([A-Z_a-z]+)","([A-Z_a-z]+)"\)/\1",\2"/'
Word_ID",Word_Lib_ID"
追问的问题是这个意思吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小米飞猫
2013-02-20 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部
sed 's/\"//g' word.txt > word_to_messql.txt

是这个意思吗?
追问
额,替换成功,但是生成新文件时报错,无法找到文件,我试着手动添加新的文件,还是不行。不过后来我直接换成  sed -i 's/\"//g' word.txt  ,直接修改原文件了。

另外:
如果只定义修改范围为每行的 VALUES 之前 “ (双引号) ,又该怎么写?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式