2015-01-17 38 views
1

我是shell脚本编程的新手。我试图在网上搜索,但我找不到我在找的东西 - 我该如何削减一个变量才能获得我正在寻找的价值?shell脚本:如何在变量中剪切行

,比如我有:

Result=`awk -F : -v "Title=" -v "Author=" 'tolower() == tolower(Title) && tolower() == tolower(Author)' BookDB.txt` 
//which will return: 
//Result= Black:Hat:12.30:20:30 

我已经试过这样做,但它不会工作:

PRICE= cut -d ":" -f 3 $Result 

任何帮助,将不胜感激,谢谢!

回答

1

你的代码没有错......至少大部分是这样!

echo 'Result= Black:Hat:12.30:20:30' | cut -d ":" -f 3会给结果12.30

问题是您可能想要在shell脚本上使用它。 要做到这一点刚刚尝试以下操作: PRICE=`cut -d ":" -f 3 $Result`

我所做的是把基本前`而且要在变量存储表达式之后。

参考,以了解更多:http://www.freeos.com/guides/lsst/ch02sec08.html

祝您好运!

+0

谢谢@Serapheim – isme

1

如何用awk ...

input="Black:Hat:12.30:20:30" 
first=$(echo input | awk -F":" '{print $1}') 
echo $first 
second=$(echo $input | awk -F":" '{print $2}') 
echo $second 
date=$(echo $input | awk -F":" '{print $3 ":" $4 ":" $5}') 
echo $date 

您可能需要修改,以适应您的具体要求。

+1

谢谢@Jose – isme

+1

避免使用旧的和过时的后盾,使用圆括号:'second = $(echo $ input | awk -F“:''{print $ 2}')' – Jotne

+0

@Jotne,谢谢小费! –