免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2794 | 回复: 14
打印 上一主题 下一主题

还是关于去掉空格的问题?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-27 18:57 |只看该作者 |正序浏览
文件A:

字段1   字段2
------    -------
张  三 aa
张小三 bb
王    二 cc
王大  二 dd

如何去掉字段1 中的空格?
sed? awk? vi?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
15 [报告]
发表于 2003-12-02 13:43 |只看该作者

还是关于去掉空格的问题??

關鍵是找到字段區隔"規則",排列約沒規則,難度越高...

當然,也可以將相同規則的句子逐次抽離來處理,直到所有不同規則都處理完畢。
只是 code 要再多寫一些而已。

無論如何,我們要學的是"基礎、技巧",而不是"招式、套路"。
一理通、百理明﹗  ^_^

论坛徽章:
0
14 [报告]
发表于 2003-12-02 13:28 |只看该作者

还是关于去掉空格的问题??

假如楼主的文本是这样:
王小 二 aa bb cc
诸 葛 孔 亮 aa bb cc ee
Kenny chen  ee ff  gg mm
...............
这个怕是真的没法处理???

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

还是关于去掉空格的问题??

我給的兩個 code 是不太一樣的:
1) 前者是抓出最後一個字段,然後將其於的空白濾掉。
2) 後者是將第一個空白濾掉,其於保留。

因不確定樓主的需求,請視實際情形運用。  ^_^

论坛徽章:
0
12 [报告]
发表于 2003-12-02 10:09 |只看该作者

还是关于去掉空格的问题??

ft,看你们的帖子才明白楼主的文件里只有两个字段
且后面的那个字段无空格

俺的想法跟版主的类似
实现方式是对非最后一个参数,去掉其中的空格
不过实现方式就不象版主的那么简练啦
主要是忽略了名字最长只能有四位
而选用了while循环  


  1. #!/bin/sh
  2. while read line
  3. do
  4.         set -- $line
  5.         if [ $# -eq 2 ]; then
  6.                 echo $line
  7.                 continue
  8.         fi
  9.         while [ $# -gt 1 ]
  10.         do
  11.                 echo -n $1$2
  12.                 shift 2
  13.         done
  14.         if [ $# -eq 2 ]; then
  15.                 echo -n "$1 $2"
  16.         else
  17.                 echo " $1"
  18.         fi
  19. done <data
复制代码

论坛徽章:
0
11 [报告]
发表于 2003-12-02 09:20 |只看该作者

还是关于去掉空格的问题??

我改了一下这回保证好使了,就是太笨,没办法。不要见笑啊~~
文件A:

字段1 字段2
------ -------
张 三 aa
张小三 bb
王 二 cc
王大 二 dd
诸 葛 孔 明 ee
-------------------
cat /dev/null >A.tmp
a=1
line=`wc -l fileA | awk '{print $1}'`
while [ "$a" -le "$line" ]
do
m=`sed -n "$a"p fileA | awk 'END {print NF}'`
m=`sed -n "$a"p fileA | awk '{print $'$m'}'`
sed -n "$a"p fileA|sed 's/'$m'/\|'$m'/g'|sed 's/ //g'|sed 's/\|/ /g' >>A.tmp  
a=`expr $a + 1`
done
结果:
-------------
张三 aa
张小三 bb
王二 cc
王大二 dd
诸葛孔明 ee

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2003-12-02 03:01 |只看该作者

还是关于去掉空格的问题??

嗯?

我給的兩個 code  都沒問題啊...  ^_^
不知你那裡跑出來是啥結果?

论坛徽章:
0
9 [报告]
发表于 2003-12-02 02:53 |只看该作者

还是关于去掉空格的问题??

原帖由 "網中人"]
[code 发表:

beat 阿~~~~扁,%46,*34325~!@~2 abc[/code]
这又该怎么办!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-12-02 02:21 |只看该作者

还是关于去掉空格的问题??

問 bjgirl :
若剛好碰到個"假洋鬼子" 怎麼辦?  ^_^

如:kenny chen abc

try mine:
  1. while read line; do
  2.     left=`echo ${line% *}| tr -d ' '`
  3.     right=${line##* }
  4.     echo "$left $right"
  5. done < 1.txt
复制代码


or
  1. fix_space () {
  2.     if [ $# -gt 2 ]; then
  3.         echo -n "$1$2 "; shift 2; echo "$*"
  4.     else
  5.         echo $*
  6.     fi
  7. }
  8. while read line; do
  9.     fix_space $line
  10. done < 1.txt
复制代码

论坛徽章:
0
7 [报告]
发表于 2003-12-02 01:25 |只看该作者

还是关于去掉空格的问题??

看我的~~

  1. $cat urfile|sed 's/ //g;s/\([a-z]*[a-z]\)/ \1/g'
  2. 张三 aa
  3. 张小三 bb
  4. 王二 cc
  5. 王大二 dd
复制代码
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP