2015-01-17 37 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,謝謝小費! –