行でエラーが発生した部分を強調表示する方法はありますか?

行でエラーが発生した部分を強調表示する方法はありますか?

このスクリプトを実行していますが、このようなエラーが発生しますが、正確にエラーが発生した場所を検出するのに問題があります。エラーを引き起こす文字を正確に見つけるためのオプションはありますか?

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

関連情報