我正在运行这个脚本并收到这样的错误,但我很难检测到错误到底发生在哪里。是否有一个选项可以准确指出导致错误的字符?
./ISCNhelperScripts/script.sh: line 34: syntax error near unexpected token `('
./ISCNhelperScripts/script.sh: line 34: `egrep -o "[)+,]dic\([1-2]?[0-9XY];[1-2]?[0-9XY]\)\([pq][0-9][0-9];[pq][0-9][0-9]\)" input | cut -c 2- | tr '(' '\t' | tr ')' '\t' | tr ";" "\t" | awk 'BEGIN {OFS = "\t"} {print $2,$3,$4,$5}' > dicentrics'
答案1
拆分您的命令,以便错误消息中的行号会给您提示
egrep -o "[)+,]dic([1-2]?[0-9XY];[1-2]?[0-9XY])([pq][0-9][0-9];[pq][0-9][0-9])" input | \
cut -c 2- | \
tr '(' '\t' | \
tr ')' '\t' | \
tr ";" "\t" | \
awk 'BEGIN {OFS = "\t"} {print $2,$3,$4,$5}' > dicentrics
看来您由于声明()
中未转义大括号而遇到问题。egrep
我首先在声明 中用反斜杠转义它们\
和/或"
用单引号替换双引号。'
egrep