![한 줄에 하나씩 파일에서 명령 인수를 얻는 방법은 무엇입니까? [복사]](https://linux55.com/image/190726/%ED%95%9C%20%EC%A4%84%EC%97%90%20%ED%95%98%EB%82%98%EC%94%A9%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%AA%85%EB%A0%B9%20%EC%9D%B8%EC%88%98%EB%A5%BC%20%EC%96%BB%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
다음과 같은 파일 이름을 가진 파일이 있다고 가정해 보겠습니다.
requests.log
responses.log
resources used.log
이 파일을 모두 보고 싶습니다. 나는하고 싶습니다 :
$ vi `cat /tmp/list`
그러나 이로 인해 "requests.log", "responses.log", "resources" 및 "used.log" 파일이 열리게 되는데 이는 내가 원하는 것이 아닙니다.
나는 노력했다
$ cat /tmp/list | xargs -L 99 vi
하지만 이로 인해 "경고: 터미널에서 입력되지 않았습니다"라는 오류 메시지가 나타납니다.
파일을 편집하고 각 줄을 인용해 보았지만 그것도 도움이 되지 않았습니다.
일종의 프런트엔드 스크립트를 작성하지 않고 이를 수행할 수 있는 방법이 있습니까?
답변1
이것이 제가 쓴 글입니다. 작동하지만 프런트 엔드를 작성하지 않고 수행하고 싶기 때문에 약간 대답이 없습니다.
#!/usr/bin/env python3
usage = """
Read arguments from a file, one per line, then execute the given
command.
usage: lineargs <filename> <cmd> [args]
"""
import os
import sys
argfilename = sys.argv[1] # Get arguments from this file, one per line
cmd = sys.argv[2:] # The command and additional arguments
args = open(argfilename, "r").read().splitlines()
cmd.extend(args)
os.execvp(cmd[0], cmd)
오류 검사 등을 신경 쓰지 않았습니다. 이것은 일회성 스크립트일 뿐입니다.