10.1.1 使用 awk 处理字符串
在 Bash 脚本中可以调用字符串处理工具 awk 来替换内置的字符串处理操作。
样例 10-6. 使用另一种方式来截取和定位子字符串
1. #!/bin/bash
2. # substring-extraction.sh
4. String=23skidoo1
5. # 012345678 Bash
6. # 123456789 awk
7. # 注意不同字符串索引系统:
8. # Bash 中第一个字符的位置为0。
9. # Awk 中第一个字符的位置为1。
11. echo ${String:2:4} # 从第3位开始(0-1-2),4个字符的长度
12. # skid
14. # Awk 中与 ${string:pos:length} 等价的是 substr(string,pos,length)。
15. echo | awk '
16. { print substr("'"${String}"'",3,4) # skid
17. }
18. '
19. # 将空的 "echo" 通过管道传递给 awk 作为一个模拟输入,
20. #+ 这样就不需要提供一个文件名来操作 awk 了。
22. echo "----"
24. # 同样的:
26. echo | awk '
27. { print index("'"${String}"'", "skid") # 3
28. } # (skid 从第3位开始)
29. ' # 这里使用 awk 等价于 "expr index"。
31. exit 0
