3

有没有办法在Mac OS X下的Bash中找到字符串中第一个字符的位置?

就像是:

stringZ=abcABC123ABCabc                      # 6
echo `expr index "$stringZ" C12`             # C position.

高级 Bash 脚本指南中所述

几个陷阱:

  1. OS X (BSD)匹配中不存在官方索引功能expr index $string $substring
  2. 安装 gnu match ( gmatch ) 似乎不是 BSD 系统领域的可移植解决方案

有任何想法吗?

4

2 回答 2

5

这是一个可怕的 hack,可能不适用于所有情况。

tmp=${stringZ%%C12*}     # Remove the search string and everything after it
echo $(( ${#tmp} + 1 )) # Add one to the length of the remaining prefix
于 2013-07-12T13:23:54.023 回答
2

可能是矫枉过正,但如何:

$ echo 'abcABC123ABCabc' | awk 'match($0,"C"){print RSTART}'
6
于 2013-07-12T13:31:10.570 回答