파일 내용에 따라 큰 텍스트 파일을 더 작은 파일 부분으로 분할

파일 내용에 따라 큰 텍스트 파일을 더 작은 파일 부분으로 분할

다음 파일이 있습니다. (dmesg의 정보 포함)

more /tmp/file.txt

@@@@@@@@@@@@@@@@@@@@@@@@ worker01.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.
@@@@@@@@@@@@@@@@@@@@@@@@ worker02.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.
@@@@@@@@@@@@@@@@@@@@@@@@ worker03.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.
@@@@@@@@@@@@@@@@@@@@@@@@ worker04.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.
@@@@@@@@@@@@@@@@@@@@@@@@ worker05.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.
@@@@@@@@@@@@@@@@@@@@@@@@ worker06.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.
@@@@@@@@@@@@@@@@@@@@@@@@ worker07.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.

파일을 만들고 싶습니다

worker01.miss.com.txt
worker02.miss.com.txt
worker03.miss.com.txt
.
.
.

예를 들어, worker01.miss.com.txt파일을 생성하면 내용이 포함됩니다.

@@@@@@@@@@@@@@@@@@@@@@@@ worker01.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.

예: 콘텐츠가 언제 worker02.miss.com.txt포함될지

@@@@@@@@@@@@@@@@@@@@@@@@ worker02.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.

등.

답변1

사용awk

$ awk '/^@/ {close(dmesg_info); dmesg_info=$2".txt"} {print > dmesg_info}' input_file
$ cat worker01.miss.com.txt
@@@@@@@@@@@@@@@@@@@@@@@@ worker01.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.
$ cat worker02.miss.com.txt
@@@@@@@@@@@@@@@@@@@@@@@@ worker02.miss.com @@@@@@@@@@@@@@@@@@@@@@@@
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuset
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpu
[Fri Jan  8 06:29:09 2021] Initializing cgroup subsys cpuacct
.
.

관련 정보