gpt4 book ai didi

用于检测和删除文件中文本的 Windows 命令

转载 作者:可可西里 更新时间:2023-11-01 10:31:08 26 4
gpt4 key购买 nike

我有一个 ascii 文件,里面有一行:开始稍后在线:结束

我希望能够从 Windows 中的命令行调用中删除这两行以及其间的所有内容。这需要完全自动化。

编辑:参见 sed in Vista - how to delete all symbols between?有关如何使用 sed 执行此操作的详细信息(cygwin 有 sed)。

编辑:我发现 SED 可以正常工作,但是当我将输出通过管道传输到文件时,回车符已被删除。我怎样才能保留这些?使用这个 sed 正则表达式:

/^GlobalSection(TeamFoundationVersionControl) = preSolution$/,/^EndGlobalSection$/{/^GlobalSection(TeamFoundationVersionControl) = preSolution$/!{/^EndGlobalSection$/!d }

.. 开始部分是“GlobalSection(TeamFoundationVersionControl) = preSolution”,结束部分是“EndGlobalSection”。我也想删除这些行。

编辑:我现在为 sed 使用更简单的东西:

/^GlobalSection(TeamFoundationVersionControl) = preSolution$/,/^EndGlobalSection$/d

虽然换行仍然是个问题

最佳答案

或者,我最近使用的是一种脚本语言,它可以很好地与 Ruby 或 Python 等 Windows 一起执行此类任务。 Ruby 很容易在 Windows 中安装,并且会产生像这个儿戏一样的问题。

这是一个您可以使用的脚本:cutBeginEnd.rb myFileName.txt

sourcefile = File.open(ARGV[0])

# Get the string and do a multiline replace
fileString = sourceFile.read()
slicedString = fileString.gsub(/BEGIN.*END\n/m,"")

#Overwrite the file
sourcefile.pos = 0
sourcefile.print slicedString
sourcefile.truncate(f.pos)

这做得很好,允许很大的灵 active ,并且可能比 sed 更具可读性。

关于用于检测和删除文件中文本的 Windows 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/426561/

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