문제

나는 데이터를 "컷"으로 파이프로 파이프하여 텍스트의 첫 열을 잘라 내려고 노력하고 있습니다. 이것은 작동합니다

$ cat test.txt | cut -d\  -f2-

stdin에서 읽는 것도 작동합니다.

$ cut -d\  -f2- -
? doc/html/analysis.html
? doc/html/classxytree-members.html
<CTRL+D>

그러나 파이프가 참여하자마자 내 <CTRL+D> 더 이상 "파일 끝"을 알 수 없습니다.

$ cut -d\  -f2- - | xargs echo

업데이트: 이것은 구식 Bash (3.00.15)의 버그입니다. 최신 버전에서 작동합니다 (4.0.33 및 3.2.25 시도). 그러나 쉽게 업그레이드 할 수 없으므로 해결 방법을 갖는 것이 좋을 것입니다.


배경 : 저에게 응축 된 출력을 제공하는 스크립트/oneLiner가 있습니다. cvs status (알고, cvs ...) 형식으로

? filename

예를 들어 아직 커밋되지 않은 파일의 경우. 해당 명령에서 출력의 일부를 복사+붙여 넣고 다른 명령에 대한 입력으로 사용하여 이러한 파일을 CVS에 추가합니다. 말하다:

$ cut -d\  -f2- | xargs cvs add
<paste lines>
<CTRL-D>        # <-- doesn't work

아이디어?

도움이 되었습니까?

해결책

당신은 시도 했습니까?

$ cat | cut -d\  -f2- | xargs cvs add
<paste lines>
<CTRL-D>        # <-- doesn't work

다른 팁

당신의 예는 저에게 잘 작동합니다. 어떤 쉘을 사용하고 있습니까? 어떤 유틸리티?

때때로 사람들을 여행하는 것은 그 것입니다 Ctrl 키- 라인에서 첫 번째 캐릭터 인 경우에만 작동합니다. 복사 및 붙여 넣기를하는 경우 때로는 실수로 선의 첫 번째 문자로 공백이 있거나 붙여 넣은 블록의 끝에 Newline이 없을 수도 있습니다. Ctrl 키- 작동하지 않습니다. 그냥 반환을 치고 시도하십시오 Ctrl 키- 다시 문제가 해결되는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top