当我在bash终端中运行此命令时,它可以工作:
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"它不起作用。我也试过把‘to’改成\‘,但同样不起作用。
我得到以下错误:对于第一种情况:
awk: { sum += } END { print sum }
awk: ^ syntax error对于我使用的案例\‘
awk: '{
awk: ^ invalid char ''' in expression你知道我把语法搞乱了吗?我很迷惑。
谢谢
发布于 2012-10-20 01:43:31
注意到错误消息中的$1消失了吗?
awk: { sum += } END { print sum }
awk: ^ syntax error这是因为在shell中,当您首先使用dbl-quotes引用某些内容时,就像您已经使用
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引用的字符串中时,它们已经失去了阻止变量扩展的魔力。
如何修复,摆脱你的$。不确定什么是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
https://stackoverflow.com/questions/12979472
复制相似问题