Как можно автоматически преобразовать текстовый файл с помощью инструментов в Linux? - PullRequest
0 голосов
/ 11 декабря 2011

У меня есть текстовый файл с несколькими строками.

Я хочу сделать следующее: 1. Удалить первые 14 символов.Оставьте следующие 8 символов.Затем удалите все в строке после этого.

Затем файл выглядит примерно так.

20050013
AC040020
AC050024
  1. В начале каждой строки я хочу добавить что-то вроде RAM [n] = 'h, где n продолжает увеличиваться.Я также хочу добавить;в конце.

Тогда файл выглядит следующим образом

RAM[0] = 'h20050013;
RAM[1] = 'hAC040020;
RAM[2] = 'hAC050024;

В файле должно быть 10 записей.Поэтому я добавляю оставшиеся записи и устанавливаю их равными 0. Файл заканчивается следующим образом:

RAM[0] = 'h20050013;
RAM[1] = 'hAC040020;
RAM[2] = 'hAC050024;
RAM[3] = 'h00000000;
RAM[4] = 'h00000000;
RAM[5] = 'h00000000;
RAM[6] = 'h00000000;
RAM[7] = 'h00000000;
RAM[8] = 'h00000000;
RAM[9] = 'h00000000;

Я думаю, я мог бы использовать Perl-скрипт или vi.Как автоматизировать этот процесс?

Ответы [ 4 ]

2 голосов
/ 11 декабря 2011

Вы читали man sed?

1 голос
/ 11 декабря 2011

Это очень легко сделать с помощью AWK.Используйте подстроку и $ NR

1 голос
/ 11 декабря 2011

Использовать Awk.

{
    printf("RAM[%d] = '%s;\n", NR - 1, $0)
}

(введите foo.awk, затем введите awk -f foo.awk для ваших данных.)

1 голос
/ 11 декабря 2011

Вы пытались сделать это, используя awk? У awk много функций, но его сложно написать в виде кода, то, что вы точно пытаетесь сделать.

http://www.thegeekstuff.com/2010/01/awk-introduction-tutorial-7-awk-print-examples/

Вы можете проверить эту ссылку для возможных примеров ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...