String 在Bash中的While循环中设置变量
我需要帮助将下面grep命令的输出设置为每行的变量String 在Bash中的While循环中设置变量,string,bash,variables,loops,grep,String,Bash,Variables,Loops,Grep,我需要帮助将下面grep命令的输出设置为每行的变量 while read line; do grep -oP '@\K[^ ]*' <<< $line done < tweets 上面显示了我想要的内容,如下所示: users=() while read -r line; do users+=( "$(grep -oP '@\K[^ ]*' <<< "$line")" ) done < tweets l
while read line; do
grep -oP '@\K[^ ]*' <<< $line
done < tweets
上面显示了我想要的内容,如下所示:
users=()
while read -r line; do
users+=( "$(grep -oP '@\K[^ ]*' <<< "$line")" )
done < tweets
lunaluvbad
Mags_GB
等等
但是,如果我想做以下事情:
while read line; do
usrs="grep -oP '@\K[^ ]*' <<< $line"
done < tweets
echo $usrs
它显示了奇怪的结果,当然不是我想要的结果。我需要$usrs来显示我上面提到的内容。例如:
lunaluvbad
Mags_GB
使用BASH数组和命令替换,如下所示:
users=()
while read -r line; do
users+=( "$(grep -oP '@\K[^ ]*' <<< "$line")" )
done < tweets
使用BASH数组和命令替换,如下所示:
users=()
while read -r line; do
users+=( "$(grep -oP '@\K[^ ]*' <<< "$line")" )
done < tweets
根本不需要循环。grep仍将在输入行上循环:
usrs=$(grep -oP '@\K[^ ]*' tweets)
根本不需要循环。grep仍将在输入行上循环:
usrs=$(grep -oP '@\K[^ ]*' tweets)
这几乎显示了我想要的内容,但是输出并没有显示在它自己的行上。每一个单词都需要有自己的一行。有什么想法吗?@rydallcoper在打印变量echo时使用引号$usrs@RydallCooper:如果您只需要输出,grep-oP'@\K[^]*'tweets就是您所需要的。如果您想对输出进行进一步处理,请告诉我们您正在尝试执行的操作。这几乎显示了我想要的操作,但输出没有显示在它自己的行上。每一个单词都需要有自己的一行。有什么想法吗?@rydallcoper在打印变量echo时使用引号$usrs@RydallCooper:如果您只需要输出,grep-oP'@\K[^]*'tweets就是您所需要的。如果您想对输出进行进一步处理,请告诉我们您正在尝试执行的操作。请阅读回答您问题的人并给予评分。请阅读回答您问题的人并给予评分。