Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2045208
  • 博文数量: 354
  • 博客积分: 4955
  • 博客等级: 上校
  • 技术积分: 4579
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-21 11:46
文章分类

全部博文(354)

文章存档

2015年(1)

2013年(4)

2012年(86)

2011年(115)

2010年(67)

2009年(81)

我的朋友

分类:

2009-11-05 15:35:20

今天接到一个文本,每行都是一个身份证号,要截取后6位
用了3个方法:
grep -Eo '(.){6}$' file
(man grep)

sed -r 's/(.*)(.{6})$/\2/' file
(使用sed存储器,\1代表第一部分(.*),\2代表第二部分(,{6})。)

awk '{print substr($0,(length($0)-5),6)}' file
(substr( s , p )返回字符串s中从p开始的后缀部分。length( s )返回s长度)

完整代码如下:
#!/bin/bash
file=$1
while read line
do
printf "$line\n" $file>.temp
sed -r 's/(.*)(.{6})$/\2/' .temp>>sft.txt
done<$1


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