1

端末で「/usr/bin/w」を実行すると、次のような長い行が表示されます

user    pts/0    :0.0             08Jan13  2:48m  6.02s 12:36  gnome-terminal --maximize

ただし、「/usr/bin/w | cat」などのファイルまたはパイプにリダイレクトすると、行が 80 の長さに切り捨てられます。

user    pts/0    :0.0             08Jan13  2:53m  6.02s 12:36  gnome-termi

パイプにリダイレクトしても長い行を取得することは可能ですか?

4

1 に答える 1

2

フォスのスーパーヒーローパワーを呼び出す時が来ました!

w.c学習のソース コードを調べる:

if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &win) != -1 && win.ws_col > 0)
    maxcmd = win.ws_col;
else if ((p = getenv("COLUMNS")))
    maxcmd = atoi(p);
else
    maxcmd = 80;
if (maxcmd < 71)
    xerrx(EXIT_FAILURE, _("%d column window is too narrow"), maxcmd);

maxcmd -= 21 + userlen + (from ? fromlen : 0) + (longform ? 20 : 0);
if (maxcmd < 3)
    xwarnx(_("warning: screen width %d suboptimal"), win.ws_col);

そう

export COLUMNS=300

十分なはずです、または

COLUMNS=300 /usr/bin/w | cat

テストする :)

于 2013-03-22T12:36:07.867 に答える