今天接到一个文本,每行都是一个身份证号,要截取后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
阅读(1123) | 评论(0) | 转发(0) |