2012-10-19 81 views
2

當我在它工作在bash終端運行此命令:LSF awk命令報價

awk '{ sum += $1 } END { print sum }' /user/dnaiel/test.txt > /user/dnaiel/sum.txt 

但是當我運行此:

bsub -q priority -R'rusage[mem=2000]' -oo bin${count}.out -eo bin${count}.err \ 
"awk '{ sum += $1 } END { print sum }' /user/dnaiel/test.txt > /user/dnaiel/sum.txt" 

它不工作。我也嘗試改變'到',但也不起作用。

我收到以下錯誤: 對於第一種情況:

awk: { sum += } END { print sum } 
awk:   ^syntax error 

爲我所用\」

awk: '{ 
awk:^invalid char ''' in expression 

在那裏,我的語法搞亂任何想法的情況下?我很困惑。

感謝

回答

1

通知$1是如何在錯誤信息中消失了?

awk: { sum += } END { print sum } 
awk:   ^syntax error 

這是因爲外殼,當你與DBL引號引用的東西首先,你已經與

bsub -q priority -R'rusage[mem=2000]' -oo bin${count}.out -eo bin${count}.err \ 
"awk '{ sum += $1 } END { print sum }' /user/dnaiel/test.txt > /user/dnaiel/sum.txt" 

任何$ {VAR}引用被擴展了其價值實現。單引號已經失去了它們的魔力,以防止它們在dbl引用的字符串中時發生可變擴展。

如何解決,逃避$ s。不知道是什麼BSUB,但是這應該這樣做:

bsub -q priority -R'rusage[mem=2000]' -oo bin${count}.out -eo bin${count}.err \ 
"awk '{ sum += \$1 } END { print sum }' /user/dnaiel/test.txt > /user/dnaiel/sum.txt" 
# -------------^^^ 

IHTH

+0

真好!好的竅門不要看$ 1,這是多麼的美妙。謝謝。 – Dnaiel

+0

很高興成爲你的第二套眼睛。祝你好運! – shellter