문자열이 null인 경우 대체 중에 for 루프 내에 조건을 추가하는 방법

문자열이 null인 경우 대체 중에 for 루프 내에 조건을 추가하는 방법

이 코드에 조건을 추가하려고 합니다. 예를 들어 문자열 또는 repl[string]에 대한 번역 파일에 null 문자열이 있는 경우 내 파일 input_chk.txt에 다음 세부 정보가 있습니다.

input_chk.txt

b73_chr10   w22_chr2
w22_chr7    w22_chr10
w22_chr8

코드:

#!/usr/bin/awk -f
# Collect the translations from the first file.
NR==FNR { repl[$1]=$2; next }

# Step through the input file, replacing as required.
{
if 
for ( string in repl ) {
if (length(string)==0)
{
    echo "error"
}
else
{
sub(string, repl[string])
}
}
#if string is null-character,then we have to add rules,
#if repl[string] is null-character,then we have to delete rules or put # in front of all lines until we reach </rules> also
# And print.
1

# to run this script as $ ./bash_script.sh input_chk.txt file.conf

파일.conf

<rules>
<rule>
condition =between(b73_chr10,w22_chr1)
color = ylgn-9-seq-7
flow=continue
z=9
</rule>
<rule>
condition =between(w22_chr7,w22_chr2)
color = blue
flow=continue
z=10
</rule>
<rule>
condition =between(w22_chr8,w22_chr3)
color = vvdblue
flow=continue
z=11
</rule>
</rules>

하지만 내 코드는 8행에 오류가 표시됩니다. 첫 번째 열이나 두 번째 열에 문자열이 누락된 경우 오류를 인쇄할 수 있도록 조건을 포함하는 방법입니다.

답변1

스크립트를 실행하면 문제가 표시됩니다.

  • if8행은 단어 자체가 구문 오류입니다 .
  • 21행은 단어 1자체가 구문 오류입니다.

이를 주석 처리하면 6행에 매달린 부분이 있습니다. {아마도 이것은 3행의 흥미로운 기록 수집 명령문이 결론에서 처리되는 일부 작업 스크립트에서 복사되었을 것입니다.

{에 접두사를 붙여 스크립트를 수정합니다 END. 121번 줄을 a로 변경하세요 }.

이제 (적어도) 스크립트는 구문적으로 정확하며 오류가 발생하지 않습니다. 결과는 다음과 같습니다.

#!/usr/bin/awk -f
# Collect the translations from the first file.
NR==FNR { repl[$1]=$2; next }

# Step through the input file, replacing as required.
END {
#if 
for ( string in repl ) {
if (length(string)==0)
{
    echo "error"
}
else
{
sub(string, repl[string])
}
}
#if string is null-character,then we have to add rules,
#if repl[string] is null-character,then we have to delete rules or put # in front of all lines until we reach </rules> also
# And print.
}

# to run this script as $ ./bash_script.sh input_chk.txt file.conf

그러나 그것은 유용하지 않습니다. 그것을 하게 만드는 것저것적어도 하나 이상의 질문이 더 있을 것입니다.

관련 정보