AWK 프로그래밍 언어 에서 awk를 배우고 있는데 예제 중 하나에 문제가 있습니다.
$ 2가 값 (예 :)과 같으면 $ 3을 인쇄하려면 1
다음 명령을 사용하여 제대로 작동합니다.
awk '$2==1 {print $3}' <infile> | more
그러나 1을 다른 검색 기준 (예 :)으로 대체 findtext
하면 명령이 작동하지 않습니다.
awk '$1== findtext {print $3}' <infile> | more
출력을 반환하지 않으며 입력 파일에 'findtext'가 있는지 확인합니다.
나는 또한 이것을 시도했지만 작동하지 않습니다.
awk '$1== "findtext" {print $3}' <infile> | more
다음은 'test'라는 이름의 테스트 파일이며 공백으로 구분 된 9 줄과 8 개 필드가 있습니다.
1 11 0.959660297 0 0.021231423 -0.0073 -0.0031 MhZisp
2 14 0.180467091 0.800424628 0 0.0566 0.0103 ClNonZ
3 19 0.98089172 0 0 -0.0158 0.0124 MhNonZ
4 15 0.704883227 0.265392781 0.010615711 -0.0087 -0.0092 MhZisp
5 22 0.010615711 0.959660297 0.010615711 0.0476 0.0061 ClNonZ
6 23 0.715498938 0 0.265392781 -0.0013 -0.0309 Unkn
7 26 0.927813163 0 0.053078556 -0.0051 -0.0636 MhZisp
8 44 0.55626327 0.222929936 0.201698514 0.0053 -0.0438 MhZisp
9 31 0.492569002 0.350318471 0.138004246 0.0485 0.0088 ClNonZ
내가 한 일과 결과는 다음과 같습니다.
$awk '$8 == "ClNonZ" {print $3}' test
$ grep ClNonZ test
2 14 0.180467091 0.800424628 0 0.0566 0.0103 ClNonZ
5 22 0.010615711 0.959660297 0.010615711 0.0476 0.0061 ClNonZ
9 31 0.492569002 0.350318471 0.138004246 0.0485 0.0088 ClNonZ
$ 8에 "ClNonZ"가있는 $ 3이 표시 될 것으로 예상합니다.
0.180467091
0.010615711
0.492569002
awk 명령이 아무 것도 반환하지 않은 이유를 모릅니다. 이견있는 사람?
문자열 값 "findtext"를 인용해야합니다. 그렇지 않으면 변수 이름입니다
—
evil otto
나는 "에는 FindText"를 따옴표를 시도하지만,하지 작업 ..입니다 그것이 나를 귀찮게 않는 이유
—
user1687130을
"작동하지 않음"은 아무 것도 말해주지 않습니다. 정확한 입력, 정확한 코드, 예상 출력 및 실제 출력을 보여주세요.
—
chepner