首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux字符串函数

Linux字符串函数
EN

Stack Overflow用户
提问于 2016-10-18 18:30:26
回答 4查看 322关注 0票数 2

这怎么这么复杂或者我遗漏了什么。我只想在现有字符串中获取子字符串的整数值,并将其放入变量中--与php strpos相同。

我发现的最接近的是:

代码语言:javascript
复制
echo $haystack | awk '{print index($0,"<tagtosearch>")}';

试过

代码语言:javascript
复制
myvar=$($haystack | awk '{print index($0,"<tagtosearch>")}');

但他说指挥部没有找到

该应用程序将自动在给定的linux框上包含自定义bash脚本,但不覆盖现有的脚本。因此,我决定插入自定义开始和结束标记来表示自定义部分。因此,我只是希望得到开始和结束的位置,删除这部分文件,并拉一个最新的版本。这就是我所拥有的功能:

代码语言:javascript
复制
function install-env(){
   mkdir -p /etc/datadimension/tmp;
   cd /etc/datadimension/tmp;
   cp /etc/bash.bashrc tempbash.bashrc;
   newbash=$(cat tempbash.bashrc);
   echo "$newbash" > newbash.bashrc;
   insertstart=$(echo "$newbash" | awk '{print index($0,"<starttag>")}');
   echo $insertstart;
}

输出

代码语言:javascript
复制
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

我是否需要安装一些能够处理字符串的东西--这似乎是缺乏的基本要求。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-11-28 22:50:43

除了php处理之外,找不到任何可以接受的东西。

票数 1
EN

Stack Overflow用户

发布于 2016-10-18 18:36:50

使用$($haystack),您可以调用作为命令分配给$haystack的值。

若要将$haystack值输送到awk,请尝试以下操作:

代码语言:javascript
复制
myvar=$(echo "$haystack" | awk '{print index($0,"<tagtosearch>")}');

或者就像@anubhava在评论中建议的那样,使用这里串

代码语言:javascript
复制
myvar=$(awk '{print index($0, "<tagtosearch>")}' <<< "$haystack")
票数 2
EN

Stack Overflow用户

发布于 2016-10-18 19:41:41

如果要在文件中打印搜索词的位置,则可以使用以下awk命令:

代码语言:javascript
复制
awk -v kw='<starttag>' 'p=index($0, kw){p+=b; exit} {b+=length($0)+1} END{print p}' file

我们一直将每一行的长度添加到正在运行的变量b中,直到index恢复到大于0为止。那时,我们将当前行的索引添加到b中并退出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40115524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档