Bash читает текстовый файл построчно и запускает регистратор для записи строки в var / log - PullRequest
0 голосов
/ 24 октября 2019

Я хотел бы написать скрипт bash / bash, который мог бы содержать цикл while, который построчно считывал бы текстовый файл от начала до конца, и запускать регистратор для создания файла журнала из текущей строки.

У кого-нибудь есть идеи, как этого добиться?

Код:

#!/bin/bash

# A shell script to read file line by line
filename="/home/user/logs.txt" 

while read line do
    # $line variable contains current line read from the file 
    # display $line text on the screen or do something with it.
    logger "$line"
done < $filename 

1 Ответ

1 голос
/ 24 октября 2019

Команда logger печатает данные в /dev/log. logger имеет опцию -f для помещения всего файла в системный журнал.

Считывание файла в системный журнал:

$ logger -f some_file.txt

Если вы хотите создать файлы журнала X, каждый из которых имеетединственная строка, которая происходит из некоторого «родительского файла журнала», вместо этого вы должны использовать echo, чтобы отобразить $line в некотором файле.

#! /bin/bash

filename=some_file.txt
[[ -f ${filename} ]] || exit 1
x=0
while read -r line; do
    echo $line > log$((x++)).log
done < $filename
exit 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...