lsh0211 发表于 2009-3-21 17:40:09

帮忙:以下两个怎么处理

有下述文本
12a   13   de
123 45 fe
34d          5d    g6
每行的字符间隔是空格" ",但是空格的个数各不一样
我用cut去尝试抽取其中任一列(例如第二列:1345 5d),发现它们间隔必须是tab 或者相等长度的空格才行,尝试很久也不能解决,请问怎么处理?
还有假如我想把第一行第一列的12a和第三行第一列的34d分别替换成12a88和34d88,使用sed 's//88/g'会把12a和34d都替换成88,怎么在使用正则表达试匹配下保持原字符不变,只在原字符后面或其中插入另外的字符?

lsh0211 发表于 2009-3-21 18:04:46

看到第一个问题可以用awk方便的处理
还是不知道第二个问题怎么处理

sejishikong 发表于 2009-3-21 18:04:54

cut 不熟悉,不过可以先把多个空格都替换成一个吧。
第二个用参数应该可以,类似这样s/()/\188/g的,具体的我记不清楚了。

lsh0211 发表于 2009-3-21 23:44:12

怎么把多个空格替换成一个,因为每行的空格个数不一定相等,比如第一行的有3个连续空格,而第二行有5个联系空格。
---------------

命令太多了!! 实在记不住啊!
发现可以使用: tr -s " " <file 来删除多余的空格
----------------
原来这样也可以sed 's/ * / /g' file

第二个问题还是求高手帮忙啊!!

[ 本帖最后由 lsh0211 于 2009-3-22 01:38 编辑 ]
页: [1]
查看完整版本: 帮忙:以下两个怎么处理