Chinaunix首页 | 论坛 | 博客
  • 博客访问: 254270
  • 博文数量: 78
  • 博客积分: 1465
  • 博客等级: 上尉
  • 技术积分: 972
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-28 13:46
文章分类

全部博文(78)

文章存档

2012年(1)

2011年(9)

2010年(68)

我的朋友

分类:

2010-01-11 01:01:54


#!/bin/bash
sep()
{
   printf -v str "%${1}s" ""
   echo "${str// /$2}"
}
sep 50 +
echo "版权没有,违者不揪"
sep 50 -
正好在论坛上看到这个脚本,并且都说没版权了,就顺带拿来用了。
脚本不难,有几个地方解释一下:

(学 shell 编程的时候看到 printf 和 仿 C 语言的 for 循环语句,激动得热泪盈眶啊…………)
这里的printf参数"-v"可以将输出的东西存到 -v 后的变量里面。这里就是50个空啦。这里并不是空格,用sed替换可以看出来。

下面是"${str// /$2}" 这里的 ${str//rex/replace}模式是把所有匹配rex的地方用replace来代替。
而${str/rex/replace}只替换第一个。
所以这里就是把所有的"空"替换成参数二,就成了:

++++++++++++++++++++++++++++++++++++++++++++++++++
版权没有,违者不揪
--------------------------------------------------


如果我们有stringz='!@#df$%^jf&*(' 想把里面的字符取出来。
我们可以  echo ${stringz//[^a-z]/}  哈哈,很简单……

这里想说的是,在 python challenge网站上第3关查找字符就可以用这里的字符串替换,一个命令搞定…………

阅读(676) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~