라인에서 오류가 발생한 부분을 강조 표시하는 방법이 있나요?

라인에서 오류가 발생한 부분을 강조 표시하는 방법이 있나요?

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

./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

관련 정보