我想将包含 HTTP 响应的文件拆分为两个文件:一个仅包含 HTTP 标头,另一个包含消息正文。为此,我需要在第一个空行上将文件分成两个(或者对于仅包含 CR = ' 的第一行的 UNIX 工具)\r
' 字符)使用外壳脚本.
如何以可移植的方式执行此操作(例如使用sed,但没有 GNU 扩展)?人们可以假设空行不会是文件中的第一行。空行可以到达其中一个文件,也可以不到达或同时到达两个文件;这对我来说并不重要。
您可以使用csplit
:
echo "a
b
c
d
e
f" | csplit -s - '/^$/'
Or
csplit -s filename '/^$/'
(假设“filename”的内容与 echo 的输出相同)在这种情况下将创建两个名为“xx00”和“xx01”的文件。前缀可以从“xx”更改为“outfile”,例如,-f outfile
文件名中的位数可以更改为 3-n 3
。如果需要处理 Macintosh 行结尾,可以使用更复杂的正则表达式。
要在每个空行分割文件,您可以使用:
csplit -s filename '/^$/' '{*}'
图案'{*}'
导致前面的模式尽可能多次地重复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)