3

ファイルにデータが含まれているかどうか、そのファイルの内容が表示されているかどうか、そうでない場合は「ファイルに何もない」で終了するかどうかを確認したい。リモートサーバーでこれを行うために Fabric 1.2 を使用しています。

私はこれを試しています:

    def test():
        run("cat myfile.txt | awk '{print $1}' > /dir/newfile.txt")
    if run("test -s /dir/newfile.txt || cat /dir/newfile.txt"):
            else run("echo Nothing in the file")

私はこれが最善の方法ではないことを知っており、Python が同様の目的で os.path.getsize(path) を使用していることを知っています。お手伝いできますか?

4

2 に答える 2

0

これはうまくいくはずです:

@task
def empty():
    some_file = 'some_file'
    run(('if [ -s "%s" ]; then'
         ' cat "%s"; '
         'else'
         ' echo "EMPTY FILE"; '
         'fi') % (some_file, some_file))

Redhat Unix システムに対してテストしたところ、1 回の呼び出しで bash if ステートメントと cat を使用するだけでした。

于 2012-11-20T17:58:17.117 に答える