Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sed – 在Kotlin中匹配后写入文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Kotlin新手,我想在文件中的特定匹配后在文件中插入一行.我知道如何使用sed执行此操作,如下所示: Sed "/some line in file/a some text I'd like to add after line" file 但是我想知道我将如何在Kotlin中解决这个问题.到目前为止,我已经得到了printWriter接口,但我没有看到任何明显暗示偏移或正则表达式参数的东西. 到
Kotlin新手,我想在文件中的特定匹配后在文件中插入一行.我知道如何使用sed执行此操作,如下所示:

sed "/some line in file/a some text I'd like to add after line" file

但是我想知道我将如何在Kotlin中解决这个问题.到目前为止,我已经得到了printWriter接口,但我没有看到任何明显暗示偏移或正则表达式参数的东西.

到目前为止我有

File("file.txt").printWriter(...)

谢谢!

解决方法

GNU’sed’不插入/删除/更新文件中的行,它转换输入流并提供将输出流发送到stdout,文件甚至临时文件的选项,然后在转换后覆盖原始文件完成(这是–in-place选项).

这里有一些代码可以帮助您入门,但请注意,有很多方法可以缓冲和读/写文件,流等.

val file = File("file.txt")
val tempFile = createTempFile()
val regex = Regex("""some line in file""")
tempFile.printWriter().use { writer ->
    file.forEachLine { line ->
        writer.println(when {
            regex.matches(linE) -> "a some text I'd like to add after line"
            else -> line
        })
    }
}
check(file.delete() && tempFile.renameTo(filE)) { "Failed to replace file" }

有关如何转换文本流的更多详细信息,另请参见sed,a stream editor.

大佬总结

以上是大佬教程为你收集整理的sed – 在Kotlin中匹配后写入文件全部内容,希望文章能够帮你解决sed – 在Kotlin中匹配后写入文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。