Это должно показать Вам файл однажды в секунду:
watch -n 1 cat file
Как насчет простого инкрементирования счетчика файлов каждый раз, когда вы встретите строку Request
?
awk '/Request/ {n++; next}; {print > "file"n}' test.txt
или воспользуемся встроенной переменной NR
для номера записи:
awk -v RS='\\.+Request\\.+' '{if (NR==1) next} {print > "file"NR-1 }' test.txt
и не создадим пустой файл для file1
.
Чуть более длинная строка удаляет пустую строку в начале и в конце каждого выходного файла:
awk -v RS='\\.+Request\\.+' -v ORS= '{if (NR==1) next} { gsub("^\n",""); print > "file"NR-1 }' test.txt
csplit -f file -z --suppress-matched - '/Request/' '{*}' <<\DATA
....Request....
asaksa
sda
dsad
dsad
....Request...
21mklk
nnm212
mkmr543
849238
....Request...
4392840
kndska
94i0-jkfjdk
smdla
.....Request..
839281
ksndlka
nsc
mcxmzl
DATA
Вы спрашиваете, как использовать csplit
, в основном. Его задача состоит в том, чтобы разделить его входной файл на отдельные файлы на основе контекстных совпадений.
ls
file00 file01 file02 file03
cat file00
asaksa
sda
dsad
dsad
cat file*
asaksa
sda
dsad
dsad
21mklk
nnm212
mkmr543
849238
4392840
kndska
94i0-jkfjdk
smdla
839281
ksndlka
nsc
mcxmzl