【问题标题】:Find a New Line character in a Text File and clear it using Windows Batch Script在文本文件中查找换行符并使用 Windows 批处理脚本将其清除
【发布时间】:2014-08-28 17:56:38
【问题描述】:

我需要一个 Windows 批处理脚本来在文件中查找不正确的“换行符”字符并将其删除。在实践中,文件很大,并且有多行带有这样的“NewLine”字符。因此编辑是有问题的。此外,如果我使用记事本进行编辑,并启用 Wordwrap 功能,它会产生更多的 NewLine 字符。到目前为止,我正在通过 Textpad applciation 进行操作,但这也是一种手动解决方法,并且容易出错。 因此,如果这可以通过 Windows 批处理脚本完成,我想征求您的意见。

=================

示例文本

1,2,3,

4,5,6,

7,8,

9,

10,11,

12,

13,14,15,

16,17,

18,

19,20,21,

22,23,24,

=================

期望的输出

1,2,3,

4,5,6,

7,8,9,

10,11,12,

13,14,15,

16,17,18,

19,20,21,

22,23,24,

如果我混合匹配字符和数字,脚本将不起作用。实际上,输入文件将是从数据库中提取的 csv,每列中可以有 Varchar2、Number、Float 等数据类型,用逗号分隔。在这种情况下如何使用该脚本。

样本 2

123,abc,hscs,456,adf,,

321,cba,hcdfs,4321,wqe,12,

213,bac,

hfc,145,quf,134,

457,dsxa,

dfcx,4567,hgpl,786,

879,cxd,yht,684,ytre,,

期望的输出

123,abc,hscs,456,adf,,

321,cba,hcdfs,4321,wqe,12,

213,bac,hfc,145,quf,134,

457,dsxa,dfcx,4567,hgpl,786,

879,cxd,yht,684,ytre,,

谢谢

【问题讨论】:

  • 有人可以帮忙解决这个问题的第二个测试用例吗?

标签: batch-file window


【解决方案1】:

这样的文件格式:

1,2,3,
4,5,6,
7,8,
9,
10,11,
12,
13,14,15,
16,17,
18,
19,20,21,
22,23,24,

会变成这样:

1,2,3,
4,5,6,
7,8,9,
10,11,12,
13,14,15,
16,17,18,
19,20,21,
22,23,24,

使用此代码:

type "file.txt" |repl "(^[0-9]*,[0-9]*,)\r\n" "$1" mx >"newfile.txt"

上面的代码使用了一个名为 repl.bat(由 dbenham 提供)的辅助批处理文件 - 下载地址:https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

repl.bat 放在与批处理文件相同的文件夹中或位于路径上的文件夹中。

与普通批处理相比,repl.bat 在处理大文件时非常健壮且速度非常快。

【讨论】:

  • 非常感谢以上内容。但是,如果我更改输入字符串并添加一些字符,脚本就会失败。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多