小编gow*_*awr的帖子

如何在 gawk 中保留混合换行格式?

我有一个包含 Unix (LF) 和 Windows (CR/LF) 样式换行符的输入文件。(具体来说,它是来自 Linux 系统的 XML,但它包含一些原始 HTTP 标头,HTTP 更喜欢 CRLF 作为标头):

    <response_page cause="default">
      <response_type>custom</response_type>
      <response_header>HTTP/1.1 200 OK^M
Cache-Control: no-cache^M
Pragma: no-cache^M
Connection: close</response_header>
Run Code Online (Sandbox Code Playgroud)

我正在编写一个 gawk 脚本来通过这个文件对 XML* 进行一些简单的调整,唯一的问题是它读取 LF 和 CRLF 有效 RS 但只输出 LF,而不管那里有什么......本质上,它会去除 CR。

我尝试了各种方法,最雄心勃勃的是 RS 的正则表达式匹配和打印 RT:

BEGIN { RS = "\r\n|\n"; go = "no" }
(go ~ /yes/) { 
    sub(/false/, "true", $0)
    go = "no"
}
($0 ~ /<signature signature_id="200000017">/) { 
    print "Found signature!"
    go = "yes"
} 
{ 
    printf $0 RT …
Run Code Online (Sandbox Code Playgroud)

awk gawk

5
推荐指数
1
解决办法
1325
查看次数

标签 统计

awk ×1

gawk ×1