发布时间:2012-12-13 11:22:41
假设我们定义一个变量为: file=/dir1/dir2/dir3/my.file.txt ${file#*/}: 从左往右截去第一个 / 左面的内容, 包含 / 符号:dir1/dir2/dir3/my.file.txt ${file##*/}:从左往右截去最后一个 / 左面的内容,包含 / 符号:my.file.txt ${file#*.}: 从左往右截去第一个 . 左边的内容, 包含 . 符号:file.txt ${file##*.}:从左往右截去最后一个 . 左边的内容,包含 . 符号:txt ${fi......【阅读全文】
发布时间:2012-12-13 11:09:19
零宽断言的意思是(匹配宽度为零,满足一定的条件/断言) 我也不知道这个词语是那个王八蛋发明的,简直是太拗口了。 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言。 断言用来声明一个应该为真的事实。正则表达式中只有当断言为真时才会继续进行匹配。 其中零宽断言又分四种:1)先行断言 也叫零宽度正预测先行断言(?=exp) -- 表示匹配表达式前面的位置&nbs......【阅读全文】
发布时间:2012-12-13 10:52:52
1)如何计算 20110101 - 20110202 之间有多少天?date -f <(seq 20110101 20110202) +%F 2>/dev/null | wc -l[解析] -f 参数从文件中读取每一行给 date 作为 +%F 日期输出,如果是错误的日期当然就会报错,这里屏蔽到错误信息。能输出的就是可用的日期了然后记数。2)如何计算 20110101 - 20110202 之间有多少个工作日,排除周六和周日?date -f <(seq -f"%.f" 20110101 20110202) +%u 2>/dev/nul......【阅读全文】