xargs의 -n과 -L 옵션의 차이점은 무엇인가요?
_____A: xargs 명령어에서 -n 옵션과 -L 옵션은 인자(argument)를 처리하는 단위와 기준이 다릅니다.
- -n <숫자>
- 입력된 인자를 공백(또는 구분자) 단위로 개수를 제한하여 처리합니다.
- 한 번에 <숫자>개씩 인자를 명령어에 전달합니다.
- 예: `echo "a b c d e" | xargs -n 2 echo`
출력:
```
a b
c d
e
```
- 즉, 공백으로 구분된 토큰 수 기준으로 명령을 여러 번 실행합니다.
- -L <숫자>
- 입력된 행(line) 단위로 처리합니다.
- 예:
```
printf "a b c\nd e f\n" | xargs -L 1 echo
```
출력:
```
a b c
d e f
```
- 즉, 행 단위로 읽고 명령어를 실행하기 때문에 줄 단위로 혹은 여러 줄 단위로 인자를 처리합니다.
---
요약
- `-n`은 공백 구분 토큰 수 기준 명령어 실행 횟수 지정
- `-L`은 라인(줄) 수 기준 명령어 실행 횟수 지정
두 옵션은 입력을 어떻게 쪼개서 명령어에 인자로 넘길지 기준이 다르므로, 사용 목적에 따라 적절하게 선택해야 합니다.
`-n`과 `-L` 옵션은 입력을 어떻게 나누어 처리할지를 지정하는 데 사용됩니다.
1. -n 옵션 : - `-n` 옵션은 한 번에 처리할 인수의 개수를 지정합니다.
예를 들어, `-n 2`를 사용하면, `xargs`는 주어진 입력에서 두 개의 인수를 모아서 한 번에 실행합니다.
만약 입력이 5개라면, 두 번의 실행이 일어나고 마지막 실행에는 하나의 인수가 포함될 수 있습니다.
- 예시: ```bash echo "one two three four five" | xargs -n 2 echo ``` 출력: ``` one two three four five ```
2. -L 옵션 : - `-L` 옵션은 다양한 줄(line) 수를 기준으로 명령어를 실행하는 데 사용됩니다.
이 옵션은 입력에서 줄 수에 따라 명령어를 여러 번 호출합니다.
예를 들어, `-L 2`를 사용하면 두 개의 줄마다 한 번 명령어를 실행하게 됩니다.
- 예시: ```bash echo -e "line1\nline2\nline3\nline4" | xargs -L 2 echo ``` 출력: ``` line1 line2 line3 line4 ``` 차이점 요약: - `-n`은 인수를 기준으로 실행 횟수를 조정하며, 주어진 숫자만큼 인수를 제공받아 명령어를 실행합니다.
- `-L`은 줄(line) 수를 기준으로 실행 횟수를 조정하며, 지정한 줄 수의 입력을 모아 명령어를 실행합니다.
사용 목적에 따라 이 두 옵션을 선택하여 사용할 수 있습니다.
작성자:
이시우 [비회원]
| 작성일자: 1년 전
2025-04-17 07:21:07
조회수: 130 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 130 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.