gpt4 book ai didi

regex - 如何使用 bash 将每一行提取到不同的变量中

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:15 24 4
gpt4 key购买 nike

我想将位于单词“test”之后的每一行中包含所有空格和字符的所有单词提取到数组中,然后按数字选择这些部分。

text.txt

aa
test `test one`
bb
test `test two`
test `test three`
cc

script.sh

 awk -F'test' '{print $2}' text.txt

这是结果:

test `test one`

test `test two`
test `test three`

我想要的是按数字选择每一行,例如我想使用

test two

作为我的 shell 脚本某些部分中的字符串。我想将此作为数字,例如:

echo "second sentence: ${WORDS[1]}"

你知道该由谁来做这件事吗?谢谢

最佳答案

这是一种可能的解决方案:

awk '$1 == "test" { $1 = ""; gsub(/^[ \t]/,"",$0); gsub("`","",$0); printf "declare WORDS[%d]=\"%s\"\n",cnt,$0; cnt+=1 }' text.txt > tmp.sh && . tmp.sh && rm tmp.sh

现在您可以从同一个 bash shell 访问变量:

echo ${WORDS[0]} && echo ${WORDS[1]} && echo ${WORDS[2]}

输出:

test one
test two
test three

注意:如果您从 shell 运行 awk 命令,这将起作用。但是,如果您想将该命令保存到 script.sh 文件中,则需要像这样调用它:。 script.sh(注意脚本名称前的点和空格)。

关于regex - 如何使用 bash 将每一行提取到不同的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49083251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com