head와 grep은 gedit와 다른 텍스트를 표시합니다.

head와 grep은 gedit와 다른 텍스트를 표시합니다.

로그 파일에서 일부 정보를 얻으려고 하는데 grep을 사용하여 숫자를 가져오고 gedit에서 보는 것과 같은 텍스트를 가져오고 싶습니다. 명령
결과 file: 표시 텍스트 ASCII text, with CR, LF line terminators
도 확인했습니다 .nano

head와 gedit의 결과

이미지는 CLI의 1650 숫자와 gedit의 NMEA 텍스트를 보여줍니다. 이는 동일한 파일의 시작 부분을 살펴본 결과입니다.

od -tx1a your_file | head -n30

0000000 4e 4d 45 41 2c 24 47 4e 47 47 41 2c 31 32 30 38
          NMEA , $GNGGA , 1 2 0 8
0000020 32 34 2e 37 35 32 2c 35 32 31 36 2e 33 31 34 34
          2 4 7 5 2 , 5 2 1 6 . 3 1 4 4
0000040 2c 4e 2c 30 32 30 35 39 2e 30 38 37 37 2c 45 2c
          , 엔, 0 2 0 5 9 . 0 8 7 7 , E ,
0000060 30 2c 30 2c 2c 35 37 2e 35 2c 4d 2c 33 38 2e 39
          0 , 0 , , 5 7 . 5, 미터, 3 8. 9
0000100 2c 4d 2c 2c 2a 36 31 0d 2c 31 36 35 39 30 31 30
          , 남성, , * 6 1 cr , 1 6 5 9 0 1 0
0000120 31 30 34 30 30 30 0a 4e 4d 45 41 2c 24 47 50 47
          1 0 4 0 0 0 nl NMEA , $ GPG
0000140 53 41 2c 41 2c 31 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c
          사, 아, 1,,,,,,,,,,,,,,,
0000160 2c 2c 2c 39 39 2e 39 39 2c 39 39 2e 39 39 2c 39
          ,,,, 9 9 , 9 9 . 9 9 , 9
0000200 39 2e 39 39 2a 33 30 0d 2c 31 36 35 39 30 31 30
          9. 9 9 * 3 0 cr , 1 6 5 9 0 1 0
0000220 31 30 34 30 30 30 0a 4e 4d 45 41 2c 24 47 4c 47
          1 0 4 0 0 0 nl NMEA , $ GLG
0000240 53 41 2c 41 2c 31 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c
          사, 아, 1,,,,,,,,,,,,,,,
0000260 2c 2c 2c 39 39 2e 39 39 2c 39 39 2e 39 39 2c 39
          ,,,, 9 9 , 9 9 . 9 9 , 9
0000300 39 2e 39 39 2a 32 43 0d 2c 31 36 35 39 30 31 30
          9. 9 9 * 2 Ccr , 1 6 5 9 0 1 0
0000320 31 30 34 30 30 30 0a 4e 4d 45 41 2c 24 42 44 47
          1 0 4 0 0 0 nl NMEA , $BDG
0000340 53 41 2c 41 2c 31 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c
          사, 아, 1,,,,,,,,,,,,,,,

답변1

터미널에는 \n(LF)의 개행 문자가 표시되지만 파일에는 겉보기에는 다른 개행 문자가 포함되어 있습니다. 주장된 대로 CRLF가 아닙니다. 그렇지 않으면 터미널에 실제로 개행 문자가 표시될 것이기 때문입니다!

파이프를 통해 dos2unix표시 해보세요.

dos2unix < somefile.nmea | head

그러나 솔직히 말해서 텍스트 파일에 두 가지 다른 유형의 개행 문자가 있다는 사실로 인해 이를 생성하는 GPS 펌웨어가 매우 의심스럽습니다. 그건 그렇고, NMEA는 이에 대해 매우 명확합니다. 줄 사이의 구분 기호는 LF이므로 콘솔의 간단한 출력은 확실히 올바른 것을 표시해야 합니다!

관련 정보