Chinaunix

标题: 请问如何取代最后一个字 [打印本页]

作者: rayylv    时间: 2005-07-04 17:55
标题: 请问如何取代最后一个字
CREATE INDEX DB1.TEST
ON DB1.TEST
(
A ASC,
B ASC,
C DESC,
)
PCTFREE 30;

输出成...

CREATE INDEX DB1.TEST
ON DB1.TEST
(
A ASC,
B ASC,
C DESC
)
PCTFREE 30;
作者: icesummit    时间: 2005-07-04 18:17
标题: 请问如何取代最后一个字
sed 's/\(C DESC\),/\1/'
作者: rayylv    时间: 2005-07-04 18:27
标题: 请问如何取代最后一个字
不行...因为产生Script出来的最后一行不一定是DESC
作者: icesummit    时间: 2005-07-04 21:17
标题: 请问如何取代最后一个字
那就这样吧,笨了一点:
tac file|sed '3 s/\(.*\),$/\1/'|tac
作者: icesummit    时间: 2005-07-04 21:47
标题: 请问如何取代最后一个字
还是用这个吧:
sed '$!N;s/\(.*\),\n)/\1\
/;D' file
作者: waker    时间: 2005-07-05 05:34
标题: 请问如何取代最后一个字
输入和输出有什么不同?
作者: rayylv    时间: 2005-07-05 09:06
标题: 请问如何取代最后一个字
不行AIX没tac而且最后一行不一定是第三行只是我要把最后一个','去掉
作者: icesummit    时间: 2005-07-05 09:34
标题: 请问如何取代最后一个字
原帖由 "icesummit" 发表:
还是用这个吧:
sed '$!N;s/\(.*\),\n)/\1\
/;D' file


你试这个了吗?
作者: rayylv    时间: 2005-07-05 10:01
标题: 请问如何取代最后一个字
sed '$!N;s/\(.*\,\n)/\1\ /;D' file
也不行...

CREATE INDEX DB1.TEST
ON DB1.TEST
(
A ASC,
B ASC,
C DESC,
作者: icesummit    时间: 2005-07-05 10:06
标题: 请问如何取代最后一个字
sed '$!N;s/\(.*\),\n)/\1\
/;D' file

这个必须在两行里啦!
作者: waker    时间: 2005-07-05 10:14
标题: 请问如何取代最后一个字
sed 'N;s/,\n)/\n)/;D' file


想法和ice的基本相同
作者: rayylv    时间: 2005-07-05 10:14
标题: 请问如何取代最后一个字
还是不行有error
sed '$!N;s/\(.*\),\n)/\1\
> /;D' tmp.log
sed: 0602-404 Function $!N;s/\(.*\),\n)/\1\ cannot be parsed.
作者: icesummit    时间: 2005-07-05 10:21
标题: 请问如何取代最后一个字
原帖由 "waker" 发表:
sed 'N;s/,\n)/\n)/;D' file


想法和ice的基本相同


waker老大,sed的替换部分似乎不能用\n,只能直接转义。

我前面非要用\(.*\)实在是太笨了,思维定式啊   
作者: waker    时间: 2005-07-05 10:22
标题: 请问如何取代最后一个字
有些版本不能
作者: icesummit    时间: 2005-07-05 10:24
标题: 请问如何取代最后一个字
嗯,对,我的sed是3.02,太老了。。。
作者: waker    时间: 2005-07-05 10:27
标题: 请问如何取代最后一个字
rayylv:
试试
  1. sed 'N;/,\n)/s/,//;P;D' file
复制代码

作者: rayylv    时间: 2005-07-05 10:35
标题: 请问如何取代最后一个字
sed 'N;/,\n)/s/,//;D' tmp.log
也不行...
CREATE INDEX DB1.TEST
ON DB1.TEST
(
A ASC,
B ASC,
C DESC,
作者: icesummit    时间: 2005-07-05 10:47
标题: 请问如何取代最后一个字
你的每一行后面有空格吧?
作者: rayylv    时间: 2005-07-05 10:52
标题: 请问如何取代最后一个字
是的..如果有空格要如何处理
作者: rayylv    时间: 2005-07-05 10:58
标题: 请问如何取代最后一个字
己经可以了...谢谢各位大大
作者: waker    时间: 2005-07-05 11:01
标题: 请问如何取代最后一个字
sed 'N;/, *\n)/s/,//;D' tmplog
晕死
作者: icesummit    时间: 2005-07-05 11:42
标题: 请问如何取代最后一个字

难不成是你把空格手工删掉了
还是用楼上waker的吧 :em11:




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2