2012-09-13 2 views
0

Windows의 IntelliJ IDE에서 열거 된 일부 열거 값을 메모장에 복사하고 공유 드라이브에 파일을 저장 한 다음 Linux 상자에서 열었습니다. 나는^M은 캐리지 리턴과 $ 파일의 마지막 줄을 의미 생각

A,B,C,^M$ 
D,E,F,^M$ 
G,H,I,^M$ 

주변 검색 후 : 내가 파일에 cat -A을했을 때 그것은 같은 것을 보여 주었다. 나는이 파일이 여러 개의 $를 가질 수있는 방법에 당혹 스럽다. 내 GNU 상자에 man cat에서

답변

0

$은 파일 끝이 아닌 cat -A 인 줄 끝입니다.

이것은 파일에 Windows 스타일 줄 끝 (캐리지 리턴 다음에 줄 바꿈)이 있고 Unix 스타일 (줄 바꿈 만)이 아니라는 것을 나타냅니다. 답변에 대한

(당신은 프로그램 dos2unix 또는 unix2dos를 사용하여 다른 하나의 형식에서 텍스트 파일을 변환 할 수 있습니다.)

+0

아 맞아! 거기에 Windows 스타일의 라인 결말을 sed와 일치시키는 방법이 있습니까? 'sed 's/\ r \ n // 행운을 얻으 려 시도했습니다 –

+0

sed와 함께 EOL 문자'\ n '은 행의 일부로 간주되지 않습니다 (일부 정규식 엔진은 "단일 행 모드"를가집니다 전체 입력을 한 줄로 표시하지만 AFAIK는 표시하지 않음). '\ r \ n'과 일치 시키려면 '\ r $'대신 '\ r $'을 사용할 수 있습니다. 줄 끝에 '\ r'과 일치합니다 (등가이기도합니다). 한가지 재미있는 사실은 터미널이 실제로 '\ r'을 "줄의 시작으로 돌아 가기"(원래 의미였던)로 해석 할 것이므로 sed의 /$/.../ 'on'을 \ r \ n '각 줄을 덮어 쓰게됩니다. "hello \ r \ n"과 같은 줄은 "hello \ r ... \ n"이되어 터미널이 "... lo"로 끝납니다. – porges

+1

그건 내 혼란을 없애 버린다. 나는 sed (snip -'sed ': a; N; $! ba; s/\ n// g ")와 \ n을 매치시키는 것이 왜 그렇게 복잡한 지 궁금해하고 있었다. 사실은 매우 흥미 롭습니다. 나는 이것이 타이프라이터 시대 (?)에서 유래 한 것으로 의심합니다. 당신의 도움을 주셔서 감사합니다 :) –

1

: 여러 줄, 끝 각이 있기 때문에

-A, --show-all 
      equivalent to -vET 

(싹둑)

-E, --show-ends 
      display $ at end of each line 

따라서, $의 다수가 있습니다.

+0

감사합니다! 그것이 맨 페이지를 더 조심스럽게 읽지 않기 때문에 얻은 ​​것입니다. 나는 Porges가 Windows/Linux 라인 피드 차이점을 가지고 묶어 두 대답을 모두 받아 들일 수 있었으면 좋겠다. 나는 그의 대답을 선택할 것이다. 귀하의 의견을 다시 한번 감사드립니다! :) –

+0

음, 분명히 다소 편파적이지만, 실제 질문은 "왜 여러 개의 $ s가 있어야합니까?"입니다. 당신은 캐리지 리턴 비트에 스스로 대답했다; P 나는 농담을하지만, 한편, 당신이 분류되어 기쁘다. 그리고 예,'남자'는 귀중한 도구입니다! –

+0

오, 나는 정말로 우리가 두 답을 모두 선택할 수 있기를 바란다. –

관련 문제