知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

AWK操作字符串的截取

发布时间:2014-09-05 15:01:02作者:知识屋

AWK操作字符串的截取
 
对于awk和Bash来说,他们使用的是不同的string索引系统;
bash的第一个字符从0开始记录;
awk的第一个字符从1开始记录;
#012345678   ------------Bash
#123456789  -------------Awk
以下是案例说明:
[html] 
[root@Slave02 shell]# vi substring-extraction.sh  
#!/bin/bash  
  
String=23skidoo1  
  
echo ${String:2:4}  
echo |awk '{ print substr("'"${String}"'",3,4) }'  
  
exit 0  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
"substring-extraction.sh" [New] 8L, 108C written  
[root@Slave02 shell]# sh substring-extraction.sh   
skid  
skid  
[root@Slave02 shell]#  
使用变量的前缀来匹配前面声明过的所有变量;
如:
[html] 
[root@Slave02 shell]# xyz23=watever  
[root@Slave02 shell]# xyz24=asdf  
[root@Slave02 shell]# echo "  
a=${!xyz*}"  
a=xyz23 xyz24  
[root@Slave02 shell]# echo "a=${!xyz@}"  
a=xyz23 xyz24  
[root@Slave02 shell]#   
 
抛骰子游戏;
SPOTS=6      -----取模为6,范围在0-5
die1=0
die2=0
 
------------2个变量名称,保证每个平面选择的数字记录相同
 
let "die1 = $RANDOM % $SPOTS +1"
let "die2 = $RANDOM % $SPOTS +1"
 
let "throw = $die1 + $die2"
 
echo "Throw of the dice = $throw"
echo 
 
exit 0
 
以下验证结果:
[html] 
Random number greater than 200 --- 25552  
  
Throw of the dice = 5  
  
[root@Slave02 shell]#   
[html] 
random number less than 500 --- 0  
  
Random number greater than 200 --- 9765  
  
Throw of the dice = 2  
  
[root@Slave02 shell]#   
[html] 
Random number greater than 200 --- 31180  
  
Throw of the dice = 10  
  
[root@Slave02 shell]#   
 
[root@Slave02 shell]# sh random2.sh 
Random number between 0 and 1 = 0.246062
[root@Slave02 shell]# sh random2.sh 
Random number between 0 and 1 = 0.619153
[root@Slave02 shell]# sh random2.sh 
Random number between 0 and 1 = 0.619153
[root@Slave02 shell]# sh random2.sh 
Random number between 0 and 1 = 0.619153
[root@Slave02 shell]# sh random2.sh 
Random number between 0 and 1 = 0.619153
[root@Slave02 shell]# sh random2.sh 
Random number between 0 and 1 = 0.201116
[root@Slave02 shell]# cat random2.sh 
#!/bin/bash
 
 
AWKSCRIPT='{ srand(); print rand() }'    -srand中伪随机的计算
 
 
echo -n "Random number between 0 and 1 = "
echo | awk "$AWKSCRIPT"
 
exit 0
[root@Slave02 shell]#
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜