LINUX.ORG.RU

опять парсинг логов

 , , , ,


0

2

Добрый день! Есть 2 файла с числами: файл 1.txt содержит числа в столбик:

  • 1
  • 2
  • 3
  • 4

файл 2.txt содержит другие числа в столбик:

  • 11
  • 22
  • 33
  • 44

Что хочется, но не получается: в скрипте на bash считать в две разные переменные сначала первые числа из каждого файла, что-то с ними сделать, сохранить в итоговый файл, потом считать вторые и т.д.


Сумму проще считать через awk. Если это не курсовая, конечно.

awk '{ sum += $1 } END { print sum }' 1.txt
Deleted
()

То есть нужно объединить два файла построчно и потом полученный файл обработать? /usr/bin/join, /usr/bin/paste - это из простого.

alozovskoy ★★★★★
()
Ответ на: комментарий от Deleted

вопрос не посчитать сумму, а подпихнуть потом считанные переменные в аргументы -n к head и tail чтобы выдрать определенный кусок лога

Levard
() автор топика
Ответ на: комментарий от alozovskoy

вопрос не посчитать сумму, а подпихнуть потом считанные переменные из файлов в аргументы -n к head и tail чтобы выдрать определенный кусок лога

Levard
() автор топика
Ответ на: комментарий от alozovskoy

вроде как поперло через массивы, костыли конечно, но другого не придумал, не в продакшен пойдет))

Levard
() автор топика
Ответ на: комментарий от nexfwall

да нет, тут скорее на что только люди не пойдут, когда программистам лень нормально сформировать выдачу в лог

Levard
() автор топика
Ответ на: комментарий от Levard

Но программисты могли просто прикрутить поддержку journald, и тогда бы им не пришлось выдавать логи в текстовый файл, в хреновом формате!

nexfwall ★★★★
()

Если файлы одного размера (кол-во строк) то задача решается так:


# open file descriptor 3 associated to "2.txt"
exec 3<> 2.txt

while read line1; do
    read -u 3 line2
   
    # do something
    # with line1 from file 1.txt
    # and  line2 from file 2.txt

done <1.txt

#close fd=3
exec 3>&-

anonymous
()
Ответ на: комментарий от nexfwall

надеюсь. хоть будет везде хорошая система инициализации

f1u77y ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.