我知道这看起来很简单,但我无法让它工作或找到一个功能选项。
Linux UBUNTU 操作系统,bash 脚本
我需要根据字符串识别列号(总会有不同数量的列要搜索)
示例输入:
STRING="Boo"
Hi Boo Jiggy
示例输出:
2
我知道这看起来很简单,但我无法让它工作或找到一个功能选项。
Linux UBUNTU 操作系统,bash 脚本
我需要根据字符串识别列号(总会有不同数量的列要搜索)
示例输入:
STRING="Boo"
Hi Boo Jiggy
示例输出:
2
使用 awk:
我们将您的搜索字符串作为 awk 参数传递,然后遍历输入中的每个字段。如果当前字段等于搜索参数,我们打印它的编号。
注意:如果它们存在,这将找到多个字符串,但不适用于子字符串。
使用
tr
和grep
:请注意,与@Jesse 的版本不同,此变体不是行感知的。所以,
将输出 2,而@Jesse 的版本将输出 1。
我不知道这对您是否重要。
我刚刚在脚本中添加了解决方案。也许你觉得它有帮助:
例子:
使用Raku(以前称为 Perl_6)
以上
STDIN
从Boo
. Raku 代码逐行返回每个匹配项的空格分隔列(一行上没有匹配项由返回中的空行指示)。返回匹配的零索引列。(要返回单索引列,请添加
.map(* + 1)
到代码的末尾)。如果您想从 Raku 代码中提取字符串,请将其声明为环境变量:也适用于文件:
最后,如果您确定每行只有一个匹配项 - 或者您只希望返回第一个匹配列 - 然后在代码末尾添加一个索引
.[0]
(或)。[0]
https://www.nntp.perl.org/group/perl.perl6.users/2020/07/msg9004.html
https://raku.org