2016-02-24 40 views
0

我需要在一個外殼腳本,以使用以下grep命令:在bash中如何在grep命令中插入一個變量並影響輸出到另一個?

grep 'DUE TO TIME LIMIT' ./slurm-3364.out 

,其輸出在SLURM-3364.out包含圖案「由於時間限制」的行。我想用變量替換文件名並將輸出影響到另一個變量。到目前爲止,我得不到相同的結果,我試過:

jobOver="$(grep 'DUE TO TIME LIMIT' "$NEWEST")" 
echo $jobOver 

用$ NEWEST包含適當的文件名。這會產生一個非常長的文本輸出,似乎列出工作目錄中的每個文件...

編輯: 正如評論中所述,執行echo「$ jobOver」解決了此問題。

+1

你寫什麼肯定是* A *正確猛砸語句,它確實你說你想要什麼。如果你想要的不是那個命令的功能,你需要給我們關於你想要的更精確的信息。 。 。 – ruakh

+1

請顯示縮寫輸入和所需輸出。定義你想要的,而不是隻說「這不符合我的要求」。我們如何知道你想要什麼? – dawg

+0

編輯我的帖子。基本上這兩個例子給出不同的輸出。 – JohnND

回答

1

你可以做到以下幾點:

jobOver=$(grep 'DUE TO TIME LIMIT' "$NEWEST") 
echo "$jobOver" 

這裏,NEWEST是包含您想要到grep的文件名可變。


這裏是本地測試我只是跑:

$ cat slurm-3364.out 
I DIED DUE TO TIME LIMIT, YESTERDAY. 
I FEEL GREAT WHERE I AM. 
YOU SHOULD JOIN ME. 

$ NEWEST="slurm-3364.out" 
$ jobOver=$(grep 'DUE TO TIME LIMIT' "$NEWEST") 

$ echo "$jobOver" 
I DIED DUE TO TIME LIMIT, YESTERDAY. 
+0

是引用回聲的參數做了訣竅。謝謝! – JohnND

相關問題