首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用regex查找模式

使用regex查找模式
EN

Stack Overflow用户
提问于 2015-01-22 14:25:37
回答 2查看 34关注 0票数 0

我在bash脚本中有一项任务要做。我必须读取一个文件,并将所有单词自定义存储到数组中。意味着我的数组会包含。{"Custom_KEHJEO" "Custom_TTT_LEJEB_Adaptor" "ustom_SDE_Universal_Adaptor_EEEEEE"}

我可以使用sed命令读取从第9行开始的文件内容,但无法接收'Custom*‘字符串并存储到数组中。

有一个文件让我们说~ folders.txt的内容如下,从第9行开始一直是这样的,我有以下的文本.除日期更改外,结束最后3行的...and也与下面完全相同。

代码语言:javascript
复制
Custom_KEHJEO
Custom_TTT_LEJEB_Adaptor
Custom_SDE_Universal_Adaptor_EEEEEE
Custom_SIL_XXXXXXX
Custom_SIL_UUUUUUU
SDE_PSFT_89_Adaptor
SDE_SBL_78_Adaptor
UA_SDE
SILOS
SDE_SBL_Vert_811_Adaptor
SDE_JDEE1_90_Adaptor
SDE_Universal_Adaptor
Custom_SIL_XJGADWG
Custom_SIL_UUUUUUAAFE
SDE_ORAR12_Adaptor
SDE_JDEE1_811SP1_Adaptor
SDE_ORAR1212_Adaptor
SDE_ORA11510_Adaptor
SDE_SBL_80_Adaptor
Custom_SIL_MKEIHE
Custom_SDE_GAHWYWB
.listobjects completed successfully.

Completed at Thu Jan 22 12:46:39 2015
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-22 14:46:49

最明智的方法可能是grep

代码语言:javascript
复制
arr=($(grep ^Custom filename))

# arr is now a bash array containing all tokens that begin with Custom
echo "${arr[@]}"

您也可以使用sed:

代码语言:javascript
复制
arr=($(sed '/^Custom/!d' filename))

...but grep就是为此而设计的。请注意,这取决于一个文件结构,每一行只有一个令牌。

票数 1
EN

Stack Overflow用户

发布于 2015-01-22 14:48:41

这将继续并将每个字符串作为参数传递给其他可执行文件。

代码语言:javascript
复制
INPUTFILE=folders.txt
for string in `tail -n+9 $INPUTFILE | grep ^Custom`; do
  othercommand $string
done

我刚刚看到了温特穆特的回答,这是一个很好的答案。如果您实际上需要在数组中捕获这些字符串,以达到其他目的,而不仅仅是传递给另一个命令,@Wintermute的比较合适。

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

https://stackoverflow.com/questions/28091110

复制
相关文章

相似问题

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