我在aix中有一个文件,我希望在以下字符串之后拆分:
"快照时间戳= 2014年11月25日16:00:00"
我尝试使用下面的命令,但由于字符串中的空格而导致错误。
awk '/YOUR_TEXT_HERE/{n++}{print >"out" n ".txt" }' final.txt
如果我能在语言之前获得分割数据的语法,那也会很有帮助。字符串也是。
答案 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...)