파일의 각 줄에 대해 명령을 실행하는 파이프가 없는 간단한 라이너가 있습니까?

파일의 각 줄에 대해 명령을 실행하는 파이프가 없는 간단한 라이너가 있습니까?

예를 들어,

# a demonstration of the functionality
cat dependencies | xargs -n 1 pip install -U  

# expressed as a non-simple, pipeless one liner
awk '{system("pip install -U $0")}' dependencies

단 하나의 플래그로 이 작업을 수행하려면 몇 가지 명령이 있어야 할 것 같지만 그것이 무엇인지 모르겠습니다. 그런 게 있나요?

답변1

pip install -U각 줄의 내용을 추가 인수로 사용하여 한 번 호출 하려면 GNU가 필요 xargs하며 다음이 필요합니다.

xargs -rd '\n' -n1 -a dependencies pip install -U

-d '\n'하나도 없이단어에 전달된 파일에서 자체 견적 처리를 수행한다는 pip install -U점을 명심하세요 xargs(현대 셸의 견적 처리와는 다름).

답변2

아마도 당신은 단지 다음을 원할 것입니다:

xargs -n 1 pip install -U < dependencies
# or perhaps more readable:
<dependencies xargs -n 1 pip install -U
# and if you don't want to | bash it:
<dependencies xargs -I% -d" " -n 1 bash -c "pip install -U %"

관련 정보