이 스크립트를 실행하고 있는데 이와 같은 오류가 발생하지만 정확히 오류가 발생하는 위치를 감지하는 데 문제가 있습니다. 오류를 일으키는 문자를 정확히 찾아낼 수 있는 옵션이 있습니까?
./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