用两个变量bash中的两个或单个字符串拆分一行

时间:2015-06-26 07:50:10

标签: bash shell

我试图在bash中分隔行的内容。我的代码是这样的。

 while read line; do
    var1=${line% *}
    var2=${line#* }
    echo -e "var1[$var1] var2[$var2]"
 done < "shares.lst"

我的shares.lst看起来像这样:

defaults data
sample here
okay

输出是这样的:

var1[defaults] var2[data]
var1[sample] var2[here]
var1[okay] var2[okay]

当行只是一行时会出现问题。我应该采取什么方法,以便检查我可以采用的变量是否只有一个?

2 个答案:

答案 0 :(得分:3)

read可以为您分割:

while read var1 var2; do
   echo -e "var1[$var1] var2[$var2]"
done < "shares.lst"

将输出

var1[defaults] var2[data]
var1[sample] var2[here]
var1[okay] var2[]

答案 1 :(得分:0)

我认为你可以将var1与var2进行比较以获得相等性,如果它们不相等则回显你的结果。等,

if ["$var1" != "$var2"]; then
    echo -e "var1[$var1] var2[$var2]"