내 bash는 명령이 내 코드awk는 스크립트 (bash는)에
{z=0
for(i=2;i<17;i++)
if ($i=="y")
z++
print $1 " " z}
입니다
awk -f code.txt input.txt
입니다 이것은 내 입력
AaA y n y n y n n n y n n n n n y
BbB n y y n n n n n n n n n n n n
내 출력은
해야AaA 5
BbB 2
는 그러나 그것은
AaA 4
BbB 2
코드로 장난 후에는이 행의 마지막 심볼을 등록하지 않는 것입니다.
{z=0
for(i=2;i<18;i++)
print $i
print $1 " " z}
이 스크립트를 실행하면 모든 y/n이 출력되므로 if 문에 문제가 있어야합니다.
내 헥스 덤프 : 00000000 41 61 41 20 79 20 6e 20 79 20 6e 20 79 20 6e 20 | AaA y n y n y n | 00000010 6e 20 6e 20 79 20 6e 20 6e 20 6e 20 6e 20 6e 20 | n n y n n n n n | 00000020 79 0d 0a 42 62 42 20 6e 20 79 20 79 20 6e 20 6e | y ... BbB ny y n n | 00000030 20 6e 20 6e 20 6e 20 6e 20 6e 20 6e 20 6e 20 6e | n n n n n n n n | * 00000044' –
질문에 16 진수 덤프를 붙여넣고 코드로 서식을 지정하면 읽기 쉽습니다. –
'0d 0a'가 문제이며 '0a'만 있어야합니다. 'dos2unix input.txt'를 사용하고 awk 스크립트를 다시 시도하십시오. – Cyrus