假设我有一个包含此文件的文件:
!
Title1
Data1
!
Title2
Data1
Data2
Data3
!
Title3
Data1
Data2
Data3
!
end
!
我想拆分文件的内容并使用(!)标点符号作为分隔符。 使用awk我认为这是一个坏主意,因为根据我的观察,它逐行解析文件,这不是我需要的。请帮忙。感谢
答案 0 :(得分:4)
awk
可以使用!
作为分隔符。
awk -vRS="[!]" 'NR==3' file
Title2
Data1
Data2
Data3
此处打印记录编号3
,如您所见,它不是一行。
答案 1 :(得分:1)
我认为awk
比使用sed
或grep
的机会更大。例如,如果您的数据位于名为data
的文件中,则为:
awk 'BEGIN{RS="!"} {print "[[" $0 "]]"}' data
产生
[[]]
[[
Title1
Data1
]]
[[
Title2
Data1
Data2
Data3
]]
[[
Title3
Data1
Data2
Data3
]]
[[
end
]]
[[
]]
唯一可以解决的部分是第一个分隔符之前的空记录和最后一个分隔符之后只有一个换行符的记录。消除这两个记录并不难。