linux - Linux Bash expr 索引命令
问题描述
我正在研究index
这种情况下的工作原理,我知道expr
通常如何工作,但不与index
.
例如:
X=“Hello World”, S=“acegiklnor”
echo 'expr index $S "$X"'
这个例子的输出是什么?它是如何在这里工作的?
解决方案
注意:在下面的示例中,我使用单个前导$
来指示 shell 提示。任何不以开头的行$
都会输出。
您的初始示例包含许多与 GNU expr 中的 index 子命令的含义无关的问题,我将跳过它们并只关注 index 本身。正如@chepner 指出的那样,其他实现expr
不具备该index
功能,例如在 OS X 上。
如果您阅读帮助消息,expr
您可以看到index
操作。
$ expr --help | grep index
index STRING CHARS index in STRING where any CHARS is found, or 0
使用您的示例
$ X="Hello World"
$ S="acegiklnor"
$ expr index "$X" "$S"
2
2 是 中字母的从 1 开始的e
索引Hello World
。
如果您要求输入字符串中不存在的字母,则结果将为零(并且 expr 的退出状态将为1
,表示退出不成功)。
$ expr index "$X" "z"
0
如果第二个参数是空字符串,结果是一样的。
$ expr index "$X" ""
0
推荐阅读
- powershell - 无法使用 .csv 文件的数据
- python - 对交集结果进行排序以保持最大长度仅在 python 中设置
- c - 将数据从文件X复制到文件Y C中的程序
- postgresql - Postgres 索引扫描表现不佳
- xslt-1.0 - 如何对每组节点满足特定条件的值求和使用 XSLT-1.0
- java - Android查找特定位置的区域数据
- go - 无法在 golang 网络应用程序中重定向。它坚持一页
- reactjs - Redux Dev Tools 不显示状态变化,action.payload 是 { }
- python - 无法加载 keras 训练的模型
- elasticsearch - 如何使用 ES 5.6 高级休息客户端获取集群的元数据?