在字符串后拆分文件

时间:2014-11-26 20:51:24

标签: awk

我在aix中有一个文件,我希望在以下字符串之后拆分:

"快照时间戳= 2014年11月25日16:00:00"

我尝试使用下面的命令,但由于字符串中的空格而导致错误。

awk '/YOUR_TEXT_HERE/{n++}{print >"out" n ".txt" }' final.txt

如果我能在语言之前获得分割数据的语法,那也会很有帮助。字符串也是。

1 个答案:

答案 0 :(得分:2)

问题不在于空格,而是“/”。

您是否在日期中保护了“/”?

(/...11\/25\/2014.../)

(因为它对我有用)

awk '/Snapshot timestamp = 11\/25\/2014 16:00:00/ {n++}{print >"out" n ".txt" }' final.txt

正如@Etan Reisner指出的那样,

awk '$0 == "Snap..." {n++; next } {print >"out" n ".txt" }' final.txt

是一个更好的解决方案(您不必保护正则表达式运算符)。 “next”指令将“删除”输出文件中的时间戳。

如果您计划将来再次这样做,我建议使用awk scritp:

#!/usr/bin/gawk -f

BEGIN                      { n =1                  }
/Snapshot timestamp = /    { n++; next             }
                           { print >"out" n ".txt" }

用法

awk -f awkscript  final.txt

awkscript  final.txt    (after chmod...)