我有一个变量,里面有下面的文字。我很难弄清楚如何把它分成四个不同的变量。
存储在$t_config中的文本
session writelock
random command
random command
random command
session writeunlock
session writelock
random command
random command
session writeunlock
session writelock
random command
random command
session writeunlock
session writelock
random command
random command
session writeunlock我可以分第一个,但不知道如何做其他三个。我是这样做的:
x1=$(echo "$t_config"| sed '/session writeunlock/q')
如果用IFS读行,这会更容易吗?
如有任何帮助或建议,将不胜感激。
编辑1) $t_config是从文件加载的。
每块写锁-写解锁将是一个不同的variable.EX) b1,b2,b3,b4
发布于 2019-02-15 10:43:14
我认为您想要的是将/session写锁/和/session写解锁/分配给变量b1、b2等之间的每一行。
这是一种方法。正如评论者已经提出的那样,逐行阅读可能更有效率。但是,我假设您需要使用这个变量。
#!/bin/sh
t_config=`cat moo`
echo "$t_config" | {
INDEX=0
NL="
"
while read LINE; do
case $LINE in
("session writelock")
OUTPUT=""
;;
("session writeunlock")
let INDEX=$INDEX+1
VAR="b$INDEX"
eval "$VAR='$OUTPUT'"
OUTPUT=""
;;
(*) OUTPUT="$OUTPUT$NL$LINE";;
esac
done
# now do something with the variables
echo "b1:$b1"
echo "b2:$b2"
echo "b3:$b3"
echo "b3:$b4"
}https://stackoverflow.com/questions/54695553
复制相似问题