免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: redfoxmhy
打印 上一主题 下一主题

[SCO UNIX] 如何替换文本中某段的数据?? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-09-20 22:07 |只看该作者

如何替换文本中某段的数据??

最近被perl所迷:
  1. open(F,"<filename");while(<F>;){@line=split(/\|/);$line[3]=~s/5062/6022/;print join("|",@line);};close(F);
复制代码


也很严谨

论坛徽章:
0
12 [报告]
发表于 2004-09-20 22:17 |只看该作者

如何替换文本中某段的数据??

vi 编辑
1,$s/5062/6022/g

论坛徽章:
0
13 [报告]
发表于 2004-09-21 09:14 |只看该作者

如何替换文本中某段的数据??

窃以为把串前加一个"|"比较好,不会误换

论坛徽章:
0
14 [报告]
发表于 2004-09-21 09:51 |只看该作者

如何替换文本中某段的数据??

[quote]原帖由 "yutian"]窃以为把串前加一个"|"比较好,不会误换[/quote 发表:


非也~~假如其他字段有以5062为开头,加"|"也是不行的.

论坛徽章:
0
15 [报告]
发表于 2004-09-21 10:24 |只看该作者

如何替换文本中某段的数据??

:em11: 俺也认为:
:g/|5062/s//|6022/g
更妥一些,但也不能完全保证其他字段被替换,最好awk筛一个。

论坛徽章:
0
16 [报告]
发表于 2004-09-21 11:17 |只看该作者

如何替换文本中某段的数据??

用perl也可以很简单的

  1. perl -p -i -e "s/5062/6022/g" file
复制代码

论坛徽章:
0
17 [报告]
发表于 2004-09-21 12:45 |只看该作者

如何替换文本中某段的数据??

俺以为,还是VI比较好,不是什么多复杂的东西没有必要编程吧.有时也以利用一些其他软件,WINDOWS下的,(当然了,在同一局网内)

论坛徽章:
0
18 [报告]
发表于 2004-09-21 14:28 |只看该作者

如何替换文本中某段的数据??

我认为未必,若编辑一个经常使用的文本(如代收代发等等),可以使用shell程序,若只编辑一个一次使用的文本大可不必费神、劳其筋骨。

论坛徽章:
0
19 [报告]
发表于 2004-09-22 11:45 |只看该作者

如何替换文本中某段的数据??

没想到有这么多哥哥姐姐帮忙,在此万福!!!
可今天我才发现文本有变如下:
2|502201940005|64466|50220110000500|24.90
2|502201940005|64466|50220110000528|35.90
2|502201940005|64466|50220110000537|28.60
2|502201940005|64466|50220110000611|36.90
2|502201940005|64466|50220110000622|29.30
用vi中的:g/|5022/s//6022/g
和sed替换 会把第二字段中的5022也换去啊,可要求是不能换啊
另外 有的哥哥说的awk 写的我看不太清啊,能...吗?
perl没用过能直接用吗?也会替换去第二段字中的5022 吗?
谢谢大家 了
另外 可能 有哥哥姐姐认为这是“无聊的话题啊 ”
不好意思 可我真的不太明白,是真心想问,你不要打击我好不?
我的心是很脆弱的,哈哈!
再次谢谢大家 了!!!!     

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
20 [报告]
发表于 2004-09-22 12:19 |只看该作者

如何替换文本中某段的数据??

借c1|2d3的法子:

  1. awk -F\| '{OFS="|"}{$2="6022"substr($2,5);print}' file
复制代码

OFS="|"告诉awk分隔符是"|"
$2表示第2个字段
"6022"是你要换的新值,substr($2,5)表示第2字段从第5位开始的子串
$2=....表示更新第2字段内容为后面的值,
print打印出来
当然你可以输出到一个新文件里:
awk -F\| '{OFS="|"}{$2="6022"substr($2,5);print}'  oldfile >; newfile
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP