免费注册 查看新帖 |

Chinaunix

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

[文本处理] 字符串补全逗号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-04 17:21 |只看该作者 |倒序浏览
本帖最后由 srzyhead 于 2013-01-04 17:25 编辑
  1. edasdf
  2. sad
  3. werew
复制代码
这种长度小于20字符串,想在右面补充逗号,直到满20个字符,目标结果如下
  1. edasdf,,,,,,,,,,,,,,
  2. sad,,,,,,,,,,,,,,,,,
  3. werew,,,,,,,,,,,,,,,
复制代码
可是printf只能补0,于是只能想出下面的笨法:
echo -e "edasdf\nsad\nwerew" | awk 'BEGIN{a=",,,,,,,,,,,,,,,,,,,,"}{print $1substr(a,1,length(a)-length($1));}'

问下各位大侠有什么好的方法没,用其他命令达到要求也欢迎分享

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
2 [报告]
发表于 2013-01-04 17:33 |只看该作者
本帖最后由 yestreenstars 于 2013-01-04 17:36 编辑

awk
  1. awk '{while(length($0)<20){$0=$0","}}1'
复制代码
sed
  1. sed -r ':1;s/$/,/;/.{20}/!b1'
复制代码
LZ你是打算摇到外婆桥去吗?

论坛徽章:
0
3 [报告]
发表于 2013-01-04 17:37 |只看该作者
回复 2# yestreenstars

卖个萌撒,有图的帖子点击量才容易高啊


   

论坛徽章:
0
4 [报告]
发表于 2013-01-04 17:44 |只看该作者
本帖最后由 srzyhead 于 2013-01-04 17:46 编辑

回复 2# yestreenstars

新编辑的sed那个试了下不能用,有可能是我的sed版本太低了
  1. /AKEMI_HOMURA$echo -e "edasdf\nsad\nwerew" | sed -r ':1;s/$/,/;/.{20}/!b1'
  2. sed: illegal option -- r
  3. Usage:  sed [-n] Script [File ...]
  4.         sed [-n] [-e Script] ... [-f Script_file] ... [File ...]
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
5 [报告]
发表于 2013-01-04 17:46 |只看该作者
maybe
  1. [root@localhost ~]# cat j
  2. edasdf
  3. sad
  4. werew
  5. [root@localhost ~]# sed -r ':1;s/$/,/;/.{20}/!b1' j
  6. edasdf,,,,,,,,,,,,,,
  7. sad,,,,,,,,,,,,,,,,,
  8. werew,,,,,,,,,,,,,,,
  9. [root@localhost ~]# sed --version
  10. GNU sed version 4.2.1
  11. Copyright (C) 2009 Free Software Foundation, Inc.
  12. This is free software; see the source for copying conditions.  There is NO
  13. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
  14. to the extent permitted by law.

  15. GNU sed home page: <http://www.gnu.org/software/sed/>.
  16. General help using GNU software: <http://www.gnu.org/gethelp/>.
  17. E-mail bug reports to: <bug-gnu-utils@gnu.org>.
  18. Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
  19. [root@localhost ~]#
复制代码

论坛徽章:
0
6 [报告]
发表于 2013-01-04 17:50 |只看该作者
回复 5# yestreenstars


在aix里,sed,awk,grep,和外面的gnu的是不一样的
它们的版本跟着os走,只有aix自己维护,几乎不更新,基本可以当最老的版本看待,要想了解功能,man下,并查看man里提到的文档

要想和外面linux的程序完美兼容,你可以装个linux toolbox版本的
http://www-03.ibm.com/systems/po ... /toolbox/alpha.html


出处

我的就是aix的,目测linux toolbox也没按,悲催...
   

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
7 [报告]
发表于 2013-01-04 17:53 |只看该作者
  1. awk '{{for(i=length;i<=20;i++)$0=$0","}}1' urfile
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
8 [报告]
发表于 2013-01-04 22:05 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
8
双子座
日期:2013-08-31 07:37:12金牛座
日期:2013-09-09 18:49:12处女座
日期:2013-09-23 11:43:14处女座
日期:2013-10-09 19:48:21狮子座
日期:2014-03-24 18:22:12丑牛
日期:2014-04-22 22:07:51申猴
日期:2014-06-12 21:54:13双鱼座
日期:2014-06-13 21:52:31
9 [报告]
发表于 2013-01-04 22:29 |只看该作者
perl -lne '$str_length=length; $number=20-$str_length; print $_ ."," x $number' filename

回复 1# srzyhead


   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
10 [报告]
发表于 2013-01-04 23:36 |只看该作者
回复 8# zooyo


    互相学习~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP