1行に1つずつファイルからコマンド引数を取得するには? [コピー]

1行に1つずつファイルからコマンド引数を取得するには? [コピー]

次のようなファイル名を持つファイルがあるとします。

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)

エラーチェックなどを気にしませんでした。これはワンタイムスクリプトです。

おすすめ記事