次のようなファイル名を持つファイルがあるとします。
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)
エラーチェックなどを気にしませんでした。これはワンタイムスクリプトです。