즉시 파일 세트를 삭제하고 싶습니다.
ls | egrep \^New
출력은 예상대로입니다.
New 1
New 2
New 3
하지만 파이프라인을 계속 진행
| xargs -L rm
공백으로 구분된 입력을 제거해 보세요.
rm: New: No such file or directory
rm: 1: No such file or directory
내가 무엇을 놓치고 있나요?
답변1
파싱되지 않음ls
.이것은 트릭을 수행해야 합니다:
rm New*
xargs
인수가 기본적으로 공백으로 분할되어 , 등에서 작동하기 때문에 rm
방법 이 실패합니다 . 개행 문자를 분할하여 이 문제를 해결할 수 있지만 개행 문자가 포함된 파일 이름에는 작동하지 않습니다.New
1
New
2
답변2
예, 맞습니다. xargs
파일 이름을 공백으로 나누면 됩니다. GNU를 사용하는 경우 xargs
이 옵션을 사용하여 개행 문자를 구분 기호로 사용할 수 있습니다 -d
. 예:
ls | egrep \^New | xargs -d '\n' rm