-1

Linux マシン上の特定のファイルに関する情報を取得する必要がある ac プログラムがあります。例えば:

#include <stdlib.h>
int main(){
     system("/bin/stat /home/kehelc/programs/test.dtl | egrep Birth | awk '{ print $2, $3 }'");
     return 0;
}

この出力: 2013-07-01 11:57:52.208220100

この出力を次のようにフォーマットしたいと思います。

sed & awk でこれを行うことはできますか?

ありがとう

4

1 に答える 1

1

はい、 popen を使用して出力ストリームを読み取ることができます。その後、好きなようにフォーマットできます;)

   /* simply invoke a app, pipe output*/
    pipe = popen("ls -l", "r" );
    if (pipe == NULL ) {
        printf("invoking %s failed: %s\n", buf, strerror(errno));
        return 1;
    }

    waitfor(10);

    while(!feof(pipe) ) {
        if( fgets( buf, 128, pipe ) != NULL ) {
            printf("%s\n", buf );
        }
    }

    /* Close pipe */
    rc = pclose(pipe);

または、awk で strftime を直接使用できます。

awk '{print strftime("%c", ( <timestamp in milliseconds> + 500 ) / 1000 )}'

参照用に strftime のマニュアル ページを参照して ください http://linux.die.net/man/3/strftime

于 2013-07-01T14:16:49.293 に答える