Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Скрипт по наполнению текстового файла  (Прочитано 310 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Извращенец

  • Автор темы
  • Гость
Есть очень простая задача (я чувствую, что она простая), но не могу понять, с какой стороны к ней подходить (я не программист).

Дано: директория со списком файлов. Их порядка 700 штук. Файлы, скажем, будут называться 001ae, 002ae и так далее.
Требуется:
создать файл file.txt следующего формата:

[001ae]
File=
Parametr=
Option=;

[002ae]
File=
Parametr=
Option=;

То есть, блок текста будет повторяться и браться из другого источника (скажем, из файла param.txt), а результат должен содержать вот такую структуру.
Как бы это сотворить?
Спасибо за помощь.

Оффлайн vasilisc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2563
  • г.Северодвинск - строим АПЛ
    • Просмотр профиля
    • Авторские статьи об OpenSource
Re: Скрипт по наполнению текстового файла
« Ответ #1 : 29 Январь 2014, 13:34:27 »
какая структура у param.txt?

File=
Parametr=
Option=;
заполняются данными из param.txt?
Ускорение http://vasilisc.com/speedup_ubuntu
Железо http://vasilisc.com/hcl/detect.php
Призёр http://vasilisc.com/ubuntu_woman Если помог, то поддержите WM R259039388254

Извращенец

  • Автор темы
  • Гость
Re: Скрипт по наполнению текстового файла
« Ответ #2 : 29 Январь 2014, 13:37:27 »
какая структура у param.txt?
Просто какой-то асбтрактный текст. Скажем, вывод какой-то другой программы.
То есть, структура самого файла нас не интересует. Просто он изменяется (строчек может быть 5 или 50), и этот скрипт должен это учитывать.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 14866
  • Я не слышу.
    • Просмотр профиля
Re: Скрипт по наполнению текстового файла
« Ответ #3 : 29 Январь 2014, 13:45:56 »
точкапробелfile.txt
~.o

Извращенец

  • Автор темы
  • Гость
Re: Скрипт по наполнению текстового файла
« Ответ #4 : 29 Январь 2014, 14:16:20 »
точкапробелfile.txt
Супер! Охренть! Я преклоняюсь перед Вашими программистскими (а так же учительскими) талантами!
А можно образец работы этого поистине гениального совета?
Возьмите любой каталог на собственном компе и сделайте мне файл указанной структуры с именами этого каталога и добавтье после каждого фразу "Изверг - дурак".
Вот с помощью команды точкапробелfile.txt.
Результат можно тут опубликовать.
Я буду лобызать Ваши пятки дважды в день!

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: Скрипт по наполнению текстового файла
« Ответ #5 : 29 Январь 2014, 14:25:34 »
Файл print.txt is param.txt

Проблемы:

Не создавай новых файлов в каталоге назначения.
Если есть файлы с ] идут лесом.

Итого:

ls | sort -n | awk '{print "["$0"]"}' > file
sed -i -e "/"]"/r/"//tmp/print.txt"" file
file не должен существовать в текущем каталоге, или поменяй к нему путь) Если такой файл там есть, то он "умрёт".

лежал у меня по вот такому пути: /tmp/print.txt
« Последнее редактирование: 29 Январь 2014, 14:49:38 от JmAbuDabi »
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5631
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Скрипт по наполнению текстового файла
« Ответ #6 : 29 Январь 2014, 14:38:51 »
какая структура у param.txt?
Просто какой-то асбтрактный текст. Скажем, вывод какой-то другой программы.
То есть, структура самого файла нас не интересует. Просто он изменяется (строчек может быть 5 или 50), и этот скрипт должен это учитывать.
Не очень понятно. Если как я понял каждый раз после [001ae] нужно добавить всё содержимое param.txt , то sed -i a\$(cat param.txt) file.txt
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Извращенец

  • Автор темы
  • Гость
Re: Скрипт по наполнению текстового файла
« Ответ #7 : 29 Январь 2014, 14:45:20 »
Не очень понятно. Если как я понял каждый раз после [001ae] нужно добавить всё содержимое param.txt
так и есть.

Цитировать
sed -i a\$(cat param.txt) file.txt
Цитировать
sed -i a\$(cat param.txt) file.txt
bash: ошибка синтаксиса около неожиданной лексемы `('


ls | sort -n | awk '{print "["$0"]"}' > file
sed -i -e "/"]"/r/"//tmp/print.txt"" file
Ооооо!!!!
А вот это - работает!
А можно пояснение, что куда и почему????
« Последнее редактирование: 29 Январь 2014, 14:50:38 от Извращенец »

 

Страница сгенерирована за 0.06 секунд. Запросов: 25.