문제
나는 데이터를 "컷"으로 파이프로 파이프하여 텍스트의 첫 열을 잘라 내려고 노력하고 있습니다. 이것은 작동합니다
$ 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 키-디 다시 문제가 해결되는지 확인하십시오.
제휴하지 않습니다 StackOverflow