gpt4 book ai didi

algorithm - control+M 字符和 '\r' 字符有什么区别。我们怎么写呢?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:07 26 4
gpt4 key购买 nike

'control+M' 字符和'\r' 字符有什么区别。

两者不一样。我们如何在 gawk 中像写 '\r' 一样写 control+M 字符。

我的目的是告诉 gawk,将 'comtrol+M' 字符作为 RS(记录分隔符)。

对于'\r'我们可以写成

gawk -v RS='\r' 'code goes here' file

gawk -v RS='\r' -v ORS='\n' '{gsub(/\n/,"",$0)} {print $0}' rawfile > newfile_slashr_removed

这里不是 '\r' 我想用 'comtrol+M'

背景:

$ grep '\r' raw_file | wc
1468 44570 2641642

$ grep '^M' raw_file | wc
1463 44522 2638958

在我使用上面的代码并获取输出并将其放入文件后,

$ grep  '^M' WDY_worker_incr_newfile | wc
0 0 0
$ grep '\r' WDY_worker_incr_newfile | wc
1464 44570 2640175

这是怎么回事?

最佳答案

你不写 ^M,你按 Ctrl-V 然后 然后 Ctrl-M 组合键。最初的 Ctrl-V 使 shell 命令行编辑“转义”成为下一个键 — 通常,Ctrl-M 将映射到与您的 shell 中的 Return 相同的操作,但是有了这个,您可以在命令上键入文字回车行。

有了这个,您就可以通过键入 RS=' + < kbd>Ctrl-V + Ctrl-M + '

在现代 shell(mksh、AT&T ksh93、GNU bash 等)上,您还可以编写 RS=$'\r'grep $'\r' 相反,美元撇号引号内插 C 风格的转义序列。

大多数工具不允许只允许您编写'\r'; printf 和 tr 是异常(exception),可能有也可能没有其他的,这取决于所使用的操作系统和工具(例如,GNU sed 允许它们出现在比 BSD sed 更多的地方)。

您将其标记为 unix,但是,作为另一点注意事项,在基于 DOS 的环境(如 Cygwin32)上,^M^J 是行分隔符,而不是只是 ^J 就像在适当的 Unix 上一样,所以如果您想重新使用回车符,工具可能会出现错误。

关于algorithm - control+M 字符和 '\r' 字符有什么区别。我们怎么写呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com