Chinaunix
标题:
请教大神,一个带有日期的文件如何按日期切割
[打印本页]
作者:
vipty
时间:
2019-01-09 15:14
标题:
请教大神,一个带有日期的文件如何按日期切割
有一个文件内容如下: cat file
2019-01-01 14:53:36 [dev pts/6(122.235.136.159)] : cd jugger/
2019-01-01 14:55:07 [dev pts/6(122.235.136.159)] : cd logs/
2019-01-01 14:55:08 [dev pts/6(122.235.136.159)] : clear
2019-01-02 14:55:10 [dev pts/6(122.235.136.159)] : ls -lrt
2019-01-02 14:55:26 [dev pts/14(122.235.136.159)] :
2019-01-02 14:55:34 [dev pts/14(122.235.136.159)] : curl http://localhost
2019-01-02 14:55:37 [dev pts/6(122.235.136.159)] : tail -100f p1.out
2019-01-02 15:09:50 [dev pts/8(122.235.246.69)] : cd /var/log/
2019-01-03 15:09:51 [dev pts/8(122.235.246.69)] : ls
2019-01-03 15:09:53 [dev pts/8(122.235.246.69)] : du -sh
如何把相同日期的行输出file-日期(比如:file-2019-01-03)并删除已输出的文件?
作者:
mfksn
时间:
2019-01-10 09:01
cat file | grep 2019-01-02 > file-2019-01-02 && sed -i '/^2019-01-02.*/d' file
把 2019-01-02 改成变量,写入脚本。
作者:
csccyab
时间:
2019-01-10 10:47
$ sort -k1,1 file | awk '{a[$1]=$0} END {for (i in a) printf "grep %s file > file-%s; sed -i \"/^%s/d\" file\n",i,i,i}'
grep 2019-01-01 file > file-2019-01-01; sed -i "/^2019-01-01/d" file
grep 2019-01-02 file > file-2019-01-02; sed -i "/^2019-01-02/d" file
grep 2019-01-03 file > file-2019-01-03; sed -i "/^2019-01-03/d" file
$ sort -k1,1 file | awk '{a[$1]=$0} END {for (i in a) printf "grep %s file > file-%s; sed -i \"/^%s/d\" file\n",i,i,i}' | sh
作者:
vipty
时间:
2019-01-10 13:53
谢谢楼上几位大神
作者:
wh7211
时间:
2021-11-19 17:20
本帖最后由 wh7211 于 2021-11-20 16:26 编辑
回复
1#
vipty
awk '/^[0-9]/{print > "file-"$1;next}{a[++b]=$0}END{if(length(a)){for(i in a){print a[i] > "1"}}else{print "" > "1"}}' 1
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2