2017-04-21 76 views
0

我無法捕獲使用sed & cut的輸出在變量中一起使用。以下是腳本的代碼片段:無法將sed輸出分配給變量

max=$(sed -n '1,${/$i/p;q;}' $file | cut -d "," -f2) 

當我打印max值時,它顯示空白。

sed -n '1,${/$i/p;q;}' $file | cut -d "," -f2 

我無法理解爲什麼分配失敗:可是當我在終端只有像下面的執行它的代碼行工作正常。任何人都可以請幫我在這裏?

問候, Sayantan

+0

不知道你在這裏嘗試成爲什麼。顯然,從'1,$'你正在做兩個行sed處理,所以管道應該給你兩個值,這意味着你需要一個數組來存儲這些值.. – sjsam

+0

@sjam是它給出了兩個值,但我切割它只能得到第二列的值。我用一個字符串替換了$ i,$文件的確切文件名有這幾行,直接在終端執行。它僅輸出。但在未在變量max中分配的腳本中。 –

+0

嗯,我剛剛注意到'sed'中的'q',它使得'1,$ {/ $ i/p; q;}'在邏輯上錯誤。在任何情況下,sed都會在第一行後退出,而不會進入最後一行。此外,您不會使用-n選項來抑制輸出,這意味着第一行將被打印兩次。你想在這裏做什麼? – sjsam

回答

0

正如評論指出(並制定了OP):

在單引號$ i不變量,但是後面跟着一個字符結束行我在行尾(不可能)之後。