说明
用awk给文件分片
文件例子
[root@k8svm1 awktest]# cat exfile
one line
---
two line
---
three line
以上面的文件为例,要通过---
符号来给这个单个文件分片成三个文件
awk RS(记录分隔符)
用法是用到awk 的RS,这个RS指的是awk的记录分隔符,默认是换行符,这次我们换成自己想要的记录分隔符,然后把每个记录重定向到其他文件。
命令
awk 'BEGIN{RS="---"}
{print $0 > NR"file"}
{close(NR"file")}' \
exfile
处理的过程
[root@k8svm1 awktest]# awk 'BEGIN{RS="---"}
> {print $0 > NR"file"}
> {close(NR"file")}' \
> exfile
[root@k8svm1 awktest]# ll
total 16
-rw-r--r-- 1 root root 10 Apr 5 20:32 1file
-rw-r--r-- 1 root root 11 Apr 5 20:32 2file
-rw-r--r-- 1 root root 13 Apr 5 20:32 3file
-rw-r--r-- 1 root root 37 Apr 5 20:26 exfile
[root@k8svm1 awktest]# for i in `ls [0-9]file`;do echo name is $i;cat $i;done
name is 1file
one line
name is 2file
two line
name is 3file
three line
网友评论