0

私は次のような内容のファイルを持っています:

        000000000000000000000000
00000000000000000000000000000000
0000000000000000000000001f000000
01000000060000000000000034000000
3f000000000000000000000004000000
000000001b0000000900000000000000
00000000600300001000000009000000
010000000400000008000000

colの数を指定して内容を並べ替えたい。たとえば、列の数を80とすると、出力は次のようになります。

00000000000000000000000000000000000000000000000000000000000000000000000000000000
1f000000010000000600000000000000340000003f00000000000000000000000400000000000000
1b000000090000000000000000000000600300001000000009000000010000000400000008000000

誰かがこれで私を助けることができますか?xxdはここで目的を果たすことができますか?ありがとう。

4

2 に答える 2

6

を使用trして、最初にコンテンツから空白を削除してから、を使用foldして特定の行幅で空白を折り返すことができます。

cat infile.txt | tr -d "[:space:]" | fold -80
于 2012-09-04T10:23:45.280 に答える
1

また、質問にはCのタグが付けられているため、同じことを行うCの方法を次に示します。

#include <stdio.h>

int main(void)
{
    FILE* fp;
    int c, col;

    fp = fopen("datafile.txt", "r");

    col = 0;

    while ((c = fgetc(fp)) != EOF)
    {
        if (c == ' ' || c == '\n') // ignore spaces and newline
            continue;

        putchar(c); // output to stdout
        ++col;

        if (col == 80) // newline at column 80
        {
            putchar('\n');
            col = 0;
        }
    }

    fclose(fp);

    return 0;
}
于 2012-09-04T10:37:52.947 に答える