如何用bash将每一行提取到不同的变量中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用bash将每一行提取到不同的变量中相关的知识,希望对你有一定的参考价值。
我想从所有单词“test”之后的每一行中的所有空格和字符中提取所有单词,然后逐个数字地选择这些单词。
的text.txt
aa
test `test one`
bb
test `test two`
test `test three`
cc
script.是
awk -F'test' '{print $2}' text.txt
这是结果:
test `test one`
test `test two`
test `test three`
我想要的是按编号选择每一行,例如我想使用
test two
在我的shell脚本的某些部分中作为字符串。我想把它作为数字ex:
echo "second sentence: ${WORDS[1]}"
你知道该怎么做吗?谢谢
答案
这是一个可能的解决方案:
awk '$1 == "test" { $1 = ""; gsub(/^[ ]/,"",$0); gsub("`","",$0); printf "declare WORDS[%d]="%s"
",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
(注意脚本名称前面的点和空格)。
以上是关于如何用bash将每一行提取到不同的变量中的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?