LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 987|回复: 5

怎样用awk/sed/cut取出变量前5位?

[复制链接]
发表于 2006-9-9 13:47:34 | 显示全部楼层 |阅读模式
怎样用awk/sed/cut取出变量前5位?

假设有1个变量AAA
AAA=34kjhbewf34kh5r433f4ko93
现在想取
BBB=AAA的前5位
CCC=AAA的6-9位
DDD=AAA的10-16位

怎样用awk/sed/cut 这些工具取出来?谢谢
发表于 2006-9-9 14:13:14 | 显示全部楼层
cut -c1-5
cut -c6-9
回复 支持 反对

使用道具 举报

发表于 2006-9-9 15:32:45 | 显示全部楼层
gawk -F'' '{print $6 $7 $8 $9}'
note after F is double single-quate and there's no space
回复 支持 反对

使用道具 举报

发表于 2006-9-9 16:56:29 | 显示全部楼层
如果要用awk的话,也是用substr()函数
回复 支持 反对

使用道具 举报

发表于 2006-9-10 23:29:34 | 显示全部楼层
用字符窜操作比较简单
echo ${AAA:0:5}
echo ${AAA:5:4}
echo ${AAA:9:7}
awk,用substr即可
sed:
sed 's/\(.....\).*/\1/'
sed 's/.\{5\}\(.\{4\}\).*/\1/'
sed 's/.\{9\}\(.\{7\}\).*/\1/'
回复 支持 反对

使用道具 举报

发表于 2006-9-11 17:36:45 | 显示全部楼层
awk '{print substr($0,1,5)}'
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表