当前位置: 首页 > 面试题库 >

转到lang区分“ \ n”和换行符

云卓
2023-03-14
问题内容

我正在尝试通过以下代码读取linux命令生成的某些字符串输出:

out, err := exec.Command("sh", "-c", cmd).Output()

以上是[]byte类型,如何区分行内容中的“ \ n”字符与实际换行符?我试过了

strings.Split(output, "\n")

bufio.NewScanner(strings.NewReader(output))

但是只要看到“ \ n”字符,它们都会拆分整个字符串缓冲区。

好了,要澄清一下,“虚幻”中断是字符串中包含的“ \ n”字符,如下所示, Print first result: "123;\n234;\n" Print second result: "456;\n"

整个输出是一个大的多行字符串,它可能还包含其他带引号的字符串,我正在处理go程序中的整个字符串输出,但是我无法控制命令的输出并在“ \ n“字符。

进一步说明:我打算处理包含字符串字符串的字节序列,并希望保留\n内部字符串中包含的“ ”并使用外层“ \n”来换行。因此,对于以下字节序列:

First line: "test1"
Second line: "123;\n234;\n345;"
Third line: "456;\n567;"
Fourth line: "test4"

我想在处理整个序列时获得3行,而不是获得7条总行。这是一个旧项目,但我记得我可以使用Python使用“ for line in f
这样的语法直接获取3行,并打印第二个内部字符串的内容,而不用渲染它。


问题答案:

“真实”和“虚幻”换行符之间没有区别。

如果您使用的是类似Unix的系统,则文本文件中的行尾将以LF或'\n'字符表示。您不能'\n'在行中间使用字符。

内存中的字符串可以包含任意多个'\n'字符。将该字符串"foo\nbar\n"写入文本文件后,将创建两行,"foo""bar"

两者之间没有有效的区别

fmt.Println("foo")
fmt.Println("bar")

fmt.Printf("foo\nbar\n")

两者都打印相同的两行序列,如下所示:

fmt.Println("foo\nbar")


 类似资料:
  •   一个n-gram是一个包含n个tokens(如词)的序列。NGram可以将输入特征 转换为n-grams。   NGram输入一系列的序列,参数n用来决定每个n-gram的词个数。输出包含一个n-grams序列,每个n-gram表示一个划定空间的连续词序列。 如果输入序列包含的词少于n,将不会有输出。 import org.apache.spark.ml.feature.NGram val w

  • 问题内容: 对于几种语言,已经多次询问了此信息,但我无法使其正常工作。我有这样的字符串 而且我想,以取代与使用 但不会被替换。我试图使用此RegEx工具进行验证,但看到的结果相同。输入的字符串不匹配。我究竟做错了什么 ? 问题答案: 这个对我有用。 结果: 您的问题在其他地方。

  • 问题内容: “隐式转换”和“显式转换”有什么区别?Java和C ++的区别是否不同? 问题答案: 显式转换是您使用某种语法 告诉 程序进行转换的地方。例如(在Java中): 隐式转换是在没有任何语法的情况下进行转换的地方。例如(在Java中): 应该注意的是(在Java中)涉及原始类型的转换通常涉及某种表示形式的更改,并且可能导致精度降低或信息丢失。相比之下,仅涉及引用类型的转换不会更改基本表示形

  • 问题内容: 我试图每次都在输出中添加新行。我正在做的是在每行之后添加它,但是我只希望它在设置一定次数后创建它。 例子:3次 问题答案: 只需在for循环中添加语句,该语句将在每n行输出之后输出新行(我相信这是您想要的,而不是在n次迭代之后)。假设您要每3行换一行伪代码:

  • 问题内容: 我有一个PHP代码库,用于混合环境下处理我们的MySQL表。例如,。 我们的代码也可以在Windows上运行,并且在不了解之前,我们已经将多个数据库导入到Windows服务器上。这导致Windows MySQL将所有表名更改为小写。()。现在,我们知道如何防止这种情况发生在新数据库中。()并且,代码在Windows服务器上运行良好,因为MySQL根本不在乎Windows上表的大小写。

  • 本文向大家介绍区分电路交换、报文交换和分组交换,包括了区分电路交换、报文交换和分组交换的使用技巧和注意事项,需要的朋友参考一下 电路切换 在这种方法中,发送方和接收方之间有一条专用路由。在通过电路交换方法确定链路之前,专用路由将继续,直到消除连接为止。 报文交换 消息交换是一种方法,其中消息作为一个整体发送并由保存和传递消息的中间集线器进行路由。在消息交换方法中,在发送方和接收方之间没有安装专用路