Linux + генерирует новый файл с определенной структурой от текстового файла что наилучший вариант

Я был в средах, которые использовали VAS (теперь назвал что-то еще, от Quest), и Centrify. Я не обслуживал ни одну систему, я был только пользователем. Так, я не могу помочь Вам решить, но это - некоторые другие имена.

Из того, что я видел, оба работали, и оба отвечали Вашим перечисленным требованиям, хотя всегда были некоторые отклонения.

-1
задан 17 April 2012 в 23:00
3 ответа

Какой лучший вариант для этого .

Инструмент, который вы уже знаете, вероятно, будет лучшим. Если вы знакомы с awk, тогда вам подойдет awk. Если вы знакомы с perl, python, ruby ​​и т. Д., То один из них может подойти. Для того, что кажется тривиальной задачей программирования, выберите свой любимый инструмент.

1
ответ дан 5 December 2019 в 20:06

Если я захочу это сделать, я сделаю это с помощью сценария Perl.

  1. Прочитать первую строку из входного файла и сохранить ее в качестве заголовка.
  2. Пропустить одну строку.
  3. Продолжить чтение строки за раз. Для каждой строки
    1. Разделите строку на основе заданного разделителя, используя split .
    2. Распечатайте возвращенные значения вместе с файлами заголовков в соответствии с необходимым форматом.

Вам необходимо установить фиксированный разделитель между поля, такие как \ t или поля фиксированной длины, чтобы иметь возможность надежно разделить поля.

0
ответ дан 5 December 2019 в 20:06

Здесь можно разместить любое количество полей.

awk 'FNR == 1 {
        for (i = 1; i <= NF; i++) {
            header[i] = $i
        }
     }
     FNR > 2 {
        for (i = 1; i<= NF; i++) {
            print header[i], "->", $i
        }
        printf "\n\n\n%s\n\n\n", "--------"
     }' inputfile

Потребуется некоторая настройка, чтобы обработать тот факт, что метка времени включает пробел. Что разделяет поля? Если это только вкладки, вы можете использовать -F '\ t' или, возможно, -F '\ t +' .

0
ответ дан 5 December 2019 в 20:06

Теги

Похожие вопросы