【问题标题】:How to cut a variable to sub variable如何将变量剪切为子变量
【发布时间】:2015-03-17 16:14:05
【问题描述】:

我有一个变量,其中存储包含

标题:作者:价格:数量:SOLDQUANTITY

在这种情况下

皱及时:myauthor:50.00:20:50

我把它存放在

Result=`awk -F : -v "Title=$1" -v "Author=$2" 'tolower($1) == tolower(Title) && tolower($2) == tolower(Author)' BookDB.txt`

但是我想把它分成 4 个变量,比如

TITLE= "wrinkle in time"
AUTHOR= "myauthor"
PRICE= "50.00"
Quantity= "20"
UNIT= "50"

然后我想计算销售单位

输入已售出的单位:3

及时起皱,我的作者,50.00, 20, 50

更新后

时间起皱,我的作者,50.00, 17, 53

非常感谢您的帮助!!!

【问题讨论】:

    标签: shell awk cut


    【解决方案1】:

    您可以使用read$result 分隔为您描述的不同变量:

    IFS=: read TITLE AUTHOR PRICE QUANTITY UNIT <<< "$result"
    

    例子:

    $ result="wrinkle in time:myauthor:50.00:20:50"
    $ IFS=: read TITLE AUTHOR PRICE QUANTITY UNIT <<< "$result"
    $ echo "$TITLE - by - $AUTHOR"
    wrinkle in time - by - myauthor
    

    您也可以使用read 提示用户输入:

    read -p "Enter units sold: " SOLDUNITS
    

    这将存储变量$SOLDUNITS 中输入的值。然后,您可以根据需要使用它来更改 $QUANTITY$UNIT。要在bash 中进行(整数)算术运算,可以使用$((expression)) 构造:

    QUANTITY=$((QUANTITY-SOLDUNITS)) 
    

    或者:

    ((QUANTITY-=SOLDUNITS))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      相关资源
      最近更新 更多